Python棉花糖:如何允许多个Schema加入一个Schema的字段?

时间:2019-10-21 05:40:42

标签: python serialization polymorphism marshmallow

我想声明一个架构字段以接受不同的架构类型,但不包括任何

棉花糖可以做以下事情吗?

class SchemaA(Schema):
    name = String()

class SchemaB(Schema):
    name = String()
    age = Integer()

class SchemaC(Schema)
    one_of_many_but_not_any = [SchemaA(), SchemaB(), String()]  # <- !

1 个答案:

答案 0 :(得分:1)

您想要实现的目标称为多态性。

棉花糖尚不支持此功能,但这是一个经常出现的问题,我一直在使用polymorphism标签在bugtracker中标记所有相关问题。

例如参见https://github.com/marshmallow-code/marshmallow/issues/1255

当前有两个库添加了此支持:

他们都有自己的优点/缺点。