用棉花糖加载PATCH数据而无需验证丢失的字段

时间:2019-09-21 05:13:32

标签: python marshmallow

我正在尝试为以下SQLAlchemy模型和Marshmallow-SQLAlchemy模式实现PATCH路由。我想更新descriptionaddress或两者都更新。 当我发送数据中的唯一一个字段并尝试加载它时,棉花糖说另一个字段丢失了。如何在不验证缺失字段的情况下用棉花糖加载补丁数据?

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False, unique=True)
    password = db.Column(db.String(80))
    description = db.Column(db.String(180))
    address = db.Column(db.String(180))


class UserSchema(ma.ModelSchema):
    class Meta:
        model = UserModel
        load_only = ("password",)
        dump_only = ("id",)
{
    "description": "New Description"
}
user_data = user_schema.load(request.get_json())
{
    "username": [
        "Missing data for required field."
    ]
}

1 个答案:

答案 0 :(得分:1)

由于它是PATCH,因此您可以将模型实例和标志partial=True传递给模式。

user_data = user_schema.load(request.get_json(), instance=instance, partial=True)