我有这个模式
从棉花糖导入验证,ValidationError 从marshmallow_jsonapi导入字段 从marshmallow_jsonapi.flask导入关系,模式
class UserSchema(Schema):
first_name = fields.Str(required=True])
last_name = fields.Str(required=True)
title = fields.Str(required=True)
class Meta:
type_ = 'users'
self_view = "blog_view.users_detail"
self_view_kwargs = {"user_id": "<id>", "_external": True}
self_view_many = "blog_view.users_list"
blog= Relationship(
many=False,
include_data=True,
type_="blogs",
include_resource_linkage=True,
schema="BlogSchema"
)
我想加载此数据(来自UI)以进行验证:
bulk_data = [
{ 'type': 'users',
'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
{'first_name': 'Billy', 'last_name': 'Butcher', 'title': 'Supe Hunter'}
},
{ 'type': 'users',
'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
{'first_name': 'Home', 'last_name': 'Lander', 'title': 'Leader'}
},
{ 'type': 'users',
'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
{'first_name': 'Black', 'last_name': 'Noir', 'title': 'Super Ninja'}
}
]
为了验证,我这样做了:
data = UserSchema(many=True).load(input_data)
我收到一个错误消息,
AttributeError:“列表”对象没有属性“获取”
这很明显,因为我正在传递列表。当我通过上述列表中的单个字典时,验证工作正常,但我想传递大量数据并立即执行验证,如棉花糖文档:https://marshmallow.readthedocs.io/en/stable/quickstart.html#validation
何时
many = True
,load方法需要一个集合类型,例如list,tuple,queryset等。
关于如何验证棉花糖中数据列表的任何建议?棉花糖的版本是:
marshmallow==2.18.0
marshmallow-jsonapi==0.23.1
谢谢!