验证棉花糖中的可选字段

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