【问题标题】:Customizing schemas in marshmallow在棉花糖中自定义模式
【发布时间】:2022-11-04 16:15:01
【问题描述】:

考虑以下架构:

from pprint import pprint

from marshmallow import Schema, fields, validate, ValidationError


class UserSchema(Schema):
    name = fields.Str(required= True, validate=validate.Length(min=1))
    permission = fields.Str(required =True, validate=validate.OneOf(["read", "write", "admin"]))
    age = fields.Int(required=True, validate=validate.Range(min=18, max=40))

现在假设在某些情况下,我希望 age 字段不必是必需的。

在下面的代码中,我将如何指定它?我可以做类似的事情:

user_schema = UserSchema(many=True, age =fields.Int(required=False, validate=validate.Range(min=18, max=40))

【问题讨论】:

    标签: python validation marshmallow


    【解决方案1】:

    我想您可以修改该字段的required 属性,但我不建议这样做。

    我将删除字段上的required 约束,并添加一个模式级验证器,如果该字段仅在业务逻辑需要它时丢失,该验证器就会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2023-03-30
      相关资源
      最近更新 更多