Python 验证棉花糖中的可选字段

Python 验证棉花糖中的可选字段,python,marshmallow,Python,Marshmallow,我的模型中有一个字段,在创建资源(POST)时在资源体中是必需的,在更新资源(PUT)时不会在请求体中传递(将与URL一起传递) 我已经创建了我的棉花糖模型: class DummySchema(): field_1 = fields.Str(required=True) field_2 = fields.Id() 如果将字段_1保留为required=True,则在PUT上会出现以下错误: { "message": { "field_1": [

我的模型中有一个字段,在创建资源(POST)时在资源体中是必需的,在更新资源(PUT)时不会在请求体中传递(将与URL一起传递)

我已经创建了我的棉花糖模型:

class DummySchema():
   field_1 = fields.Str(required=True)
   field_2 = fields.Id()
如果将字段_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:

如果它是一个ID字段,那么您最好让数据库创建它。这是典型的模式。将它设为非必需的,并且只
dump\u
。在POST中,它是在DB中创建的,并在响应中返回。在PUT中,它是必需的路径参数,用于在DB中获取项目。它是由外部DB创建的唯一ID,我需要在我的应用程序中使用它。因此我需要一种方法来确保它在创建时在请求体中是必需的,但不在更新中(因为id将在url中发送)。在这种情况下,您应该使用PUT进行创建和更新,并将id作为路径参数传递。