Динамическая переменная класса для схемы Зефир?
Я делаю несколько схем, используя зефир. Некоторые из них будут UserSchema
, PatientSchema
а также AppointmentSchema
, Я также делаю "общий" FeedbackSchema
выглядит так:
class FeedbackSchema(Schema):
success = fields.Bool()
message = fields.String()
error = fields.String()
data = ?
Я представляю, что когда конечный пользователь просит маршрут /users/all
это приведет к FeedbackSchema
где data
Поле заполнено списком всех пользователей. То есть, fields.List(fields.Nested(UserSchema))
, Однако, если они идут в /patient/1
data
поле заполняется одним пациентом, то есть fields.Nested(PatientSchema)
,
То, что я хочу, это не создавать несколько разных FeedbackSchema
s практически идентичны, за исключением определения ими типа data
переменная класса.
Как я могу добиться этого динамически? Какая-то фабрика классов, о которой я не знаю?
Мое текущее решение использует этот подкласс:
class UserFeedbackSchema(FeedbackSchema):
data = fields.Nested(UserSchema)