Динамическая переменная класса для схемы Зефир?

Я делаю несколько схем, используя зефир. Некоторые из них будут 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),

То, что я хочу, это не создавать несколько разных FeedbackSchemas практически идентичны, за исключением определения ими типа data переменная класса.

Как я могу добиться этого динамически? Какая-то фабрика классов, о которой я не знаю?

Мое текущее решение использует этот подкласс:

class UserFeedbackSchema(FeedbackSchema):
    data = fields.Nested(UserSchema)

0 ответов

Другие вопросы по тегам