我在模型中有一个字段,该字段在创建资源(POST)时在资源主体中是必需的,而在更新资源(PUT)时未在请求主体中传递(将与URL传递在一起)。
我已经创建了棉花糖模型:
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请求所必需,以便我可以执行验证?
答案 0 :(得分:0)
我认为我应该在:(
我可以将一个字段设置为partial
,因此在进行验证时,棉花糖会跳过该字段
data, errors = DummySchema().load({'field_2': 42}, partial=('field_1',))
REF:https://marshmallow.readthedocs.io/en/2.x-line/quickstart.html#validation