Зефир Python: как разрешить несколько схем в поле схемы? - PullRequest
1 голос
/ 21 октября 2019

Я хотел бы объявить поле схемы для приема различных типов схем, , но не любых .

Возможно ли что-то подобное с Зефиром?

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 Ответ

1 голос
/ 21 октября 2019

То, чего вы хотите достичь, называется полиморфизмом.

Это пока не поддерживается зефиром, но это повторяющийся вопрос, и я помечаю все связанные проблемы в багтрекере с помощью Полиморфизм tag.

См., например, https://github.com/marshmallow-code/marshmallow/issues/1255.

В настоящее время есть две библиотеки, добавляющие эту поддержку:

У них обоих есть свои плюсы / минусы.

...