flask-marshmallow 一个模式中的两个数据库对象

flask-marshmallow two db objects in one schema

我正在尝试序列化这个对象,它是两个表之间连接的结果:

query_response = [(<Company 2>, <Detail 1>), (<Company 3>, <Detail 2>)]

我正在使用这个架构:

class CompanyCompleteSchema(Schema):
    company = fields.Nested(CompanySchema)
    detail = fields.Nested(DetailSchema)

companies_complete_schema = CompanyCompleteSchema(many=True)

基本上,我想要一个用于连接查询的架构。 我正在使用:

data = companies_complete_schema.dump(query_response)

它不起作用,我无法找出问题所在。 它只是 returns:

[{}, {}]

非常感谢任何建议。谢谢

many=True 设置 Marshmallow 迭代提供的列表,并反序列化每个对象。

该列表中的一个对象的形式为 ({}, {})。 Marshmallow 期望它具有 {'company': {}, 'detail': {}} 的形式。因此,要使其正常工作,您必须先将查询结果转换为字典,然后再将它们传递给 dump 方法。我希望以下内容对您有用...

data, errors = companies_complete_schema.dump([{'company': x[0], 'detail': x[1]} for x in query_response])