首页 > 解决方案 > 棉花糖模式的动态类变量?

问题描述

我正在使用 Marshmallow 制作几个模式。其中一些是UserSchema,PatientSchemaAppointmentSchema。我也在做一个“整体” FeedbackSchema,看起来像这样:

class FeedbackSchema(Schema):
    success = fields.Bool()
    message = fields.String()
    error = fields.String()
    data = ?

我想当最终用户询问路线/users/all时,它将导致FeedbackSchemadata字段填充所有用户的列表。即,fields.List(fields.Nested(UserSchema))。但是,如果他们去/patient/1data领域是一个病人,那就是fields.Nested(PatientSchema)

我想要的是不必创建几个FeedbackSchema几乎相同的不同 s,除了它们对data类变量类型的定义。

我怎样才能动态地实现这一点?某种我不知道的类工厂?

我目前的解决方案是使用这个子类:

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

标签: pythonpython-3.xmarshmallow

解决方案


推荐阅读