验证棉花糖中的可选字段
Validating optional field in marshmallow
我的模型中有一个字段,它在创建资源 (POST) 时在资源主体中是必需的,但未在请求主体中传递(将与 URL 一起传递)在更新资源 (PUT) 时。
我已经创建了我的棉花糖模型:
class DummySchema():
field_1 = fields.Str(required=True)
field_2 = fields.Id()
如果我将 field_1 留给 required=True
,我会在 PUT
上收到以下错误:
{
"message": {
"field_1": [
"Missing data for required field."
]
}
}
我可以将其保留在模型中,但这意味着它会在 POST 请求中引起问题。
有没有一种方法可以将字段设置为可选,但将其设置为我的 POST 请求所必需的,以便我可以执行验证?
我想我应该在之前彻底阅读文档:(
我可以将字段设置为 partial
,这样当它进行验证时,marshmallow 会跳过该字段
data, errors = DummySchema().load({'field_2': 42}, partial=('field_1',))
REF:https://marshmallow.readthedocs.io/en/2.x-line/quickstart.html#validation
我的模型中有一个字段,它在创建资源 (POST) 时在资源主体中是必需的,但未在请求主体中传递(将与 URL 一起传递)在更新资源 (PUT) 时。
我已经创建了我的棉花糖模型:
class DummySchema():
field_1 = fields.Str(required=True)
field_2 = fields.Id()
如果我将 field_1 留给 required=True
,我会在 PUT
上收到以下错误:
{
"message": {
"field_1": [
"Missing data for required field."
]
}
}
我可以将其保留在模型中,但这意味着它会在 POST 请求中引起问题。
有没有一种方法可以将字段设置为可选,但将其设置为我的 POST 请求所必需的,以便我可以执行验证?
我想我应该在之前彻底阅读文档:(
我可以将字段设置为 partial
,这样当它进行验证时,marshmallow 会跳过该字段
data, errors = DummySchema().load({'field_2': 42}, partial=('field_1',))
REF:https://marshmallow.readthedocs.io/en/2.x-line/quickstart.html#validation