我有这个架构
from marshmallow import validate, ValidationError from marshmallow_jsonapi import fields from marshmallow_jsonapi.flask import Relationship, Schema
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:“列表”对象没有属性“获取”
这很明显,因为我正在传递一个列表。当我从上面的列表中传递一个字典时,验证工作正常,但我想传递批量数据并立即进行验证,如 Marshmallow 文档所示:https://marshmallow.readthedocs.io/en/stable/quickstart。 html#验证
什么时候
许多=真
, load 方法需要一个集合类型,如 list、tuple、queryset 等。
关于如何验证 Marshmallow 中的数据列表的任何建议?棉花糖版本是:
marshmallow==2.18.0
marshmallow-jsonapi==0.23.1
谢谢!