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])
我正在尝试序列化这个对象,它是两个表之间连接的结果:
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])