我正在从here尝试棉花糖ORM库。我有一个通用的报告模式,包括:
class ReportingQueryResultSchema(ma.Schema):
start_date = fields.Str(required=True)
end_date = fields.Str(required=True)
data = fields.Nested(
ReportingDataSchema,
required=True,
many=True
)
ReportingDataSchema
是一个泛型字段。它可以是不同类型的模式。我的第一直觉是继承。所以我试着这样做:
marshmallow
无法序列化嵌套字段,如下所示:
{
"data": [
{}
],
"end_date": "2017-06-05",
"start_date": "2017-06-01"
}
但如果我声明ReportingQueryResultSchema
为:
class ReportingQueryResultSchema(ma.Schema):
start_date = fields.Str(required=True)
end_date = fields.Str(required=True)
data = fields.Nested(
FooSchema, # replaced here
required=True,
many=True
)
然后它可以检测嵌套模式并正确填充结果。在
{
"data": [
{"key": "val"}
],
"end_date": "2017-06-05",
"start_date": "2017-06-01"
}
在marshmallow
中执行泛型嵌套架构的正确方法是什么?在
目前没有回答
相关问题 更多 >
编程相关推荐