Python 棉花糖:如何允许多个模式到一个模式的字段?

Python marshmallow: how to allow multiple Schemas to a Schema's field?

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

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()]  # <- !

你想实现的就是所谓的多态性。

marshmallow 尚不支持此问题,但这是一个反复出现的问题,我一直在使用 polymorphism 标记在 bugtracker 中标记所有相关问题。

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

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

他们都有自己的pros/cons。