验证棉花糖中的可选字段

时间:2019-04-22 13:35:55

标签: python marshmallow

我在模型中有一个字段,该字段在创建资源(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请求所必需,以便我可以执行验证?

1 个答案:

答案 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