在Marshm中打印嵌套模式

2024-06-16 10:55:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我把这些类作为SQLAlchemy的模型。我已经成功地让棉花糖编码我的用户对象,但它不会编码嵌套链接对象。我的SQLAlchemy查询正在fk上执行links表的联接,它工作正常。我很难弄清楚我的嵌套模式有什么问题,以及为什么它不能编码!在

class User(Base):
    __tablename__ = 'user'

    id = Column('id', Integer, primary_key=True)
    username = Column('username', String(255), unique=True)
    link = relationship("Link", backref='user', lazy='joined')


class Link(Base):
    __tablename__ = 'link'

    id = Column('id', Integer, primary_key=True)
    name = Column('name', String(255))
    user_id = Column('user_id', Integer, ForeignKey("user.id"), nullable=True)

class LinkSchema(Schema):
    name = fields.Str()
    user = fields.Nested('UserSchema')


class UserSchema(Schema):
    username = fields.Str()
    links = fields.Nested('LinkSchema')

我有一个查询数据库的函数,看起来像这样。这将返回用户并正确链接。在

^{pr2}$

在我的烧瓶路线上,这就是我正在执行的。我可以正确地得到我的用户信息回来,但棉花糖没有编码的链接部分。我知道它在那里是因为印刷链接.名称[0]。我已经看过文件很多次了,根本不知道出了什么问题。如有任何提示,我们将不胜感激。在

@app.route('/api/user_info/)
def get_user_info():
    user = get_user(user_id)
    for u in user:
        print (u.link[0].name) #this prints the link name so I know its there
    schema = UserSchema(strict=True, many=True)
    result = schema.dumps(user)
    pprint(result.data, indent=2)
    return result.data

这是返回的json。没有链接!不知道为什么。为了简洁起见,我省略了很多专栏。在

[{"username": "erick", "role": 1}]

Tags: 用户nameidtrue编码fields链接link
1条回答
网友
1楼 · 发布于 2024-06-16 10:55:30

在经历了几个小时的挫败之后,我需要在嵌套的UserSchema中将“links”设置为“link”并且many=True。在

相关问题 更多 >