如何验证棉花糖中特定类型的元素列表?
How to validate a list of elements of specific type in marshmallow?
我在烧瓶中有一个 POST 端点,它采用 json 数据,其中包含一个键 - collections
有一个列表作为值,而该列表又包含包含特定的字典列表里面的钥匙。
我正在尝试验证 request.json
但找不到合适的方法。
这是棉花糖模式的代码:
class RowSchema(Schema):
nationalCustomerId = fields.Int(required=True)
storeId = fields.Int(required=True)
categoryId = fields.Int(required=True)
deliveryDate = fields.Date(required=True, format="%Y-%m-%d")
class RequestSchema(Schema):
combinations = fields.List(RowSchema)
我试图用 RequestSchema
验证 request.json
。
我发送的request.json
如下:
{
"combinations": [
{
"nationalCustomerId": 1,
"storeId": 1,
"categoryId": 1,
"deliveryDate": "2020-01-20"
}
]
}
我哪里出错了?
这是我遇到的错误:
ValueError: The list elements must be a subclass or instance of
marshmallow.base.FieldABC.
您在 fields.List
中缺少 fields.Nested
class RowSchema(Schema):
nationalCustomerId = fields.Int(required=True)
storeId = fields.Int(required=True)
categoryId = fields.Int(required=True)
deliveryDate = fields.Date(required=True, format="%Y-%m-%d")
class RequestSchema(Schema):
combinations = fields.List(fields.Nested(RowSchema))
我在烧瓶中有一个 POST 端点,它采用 json 数据,其中包含一个键 - collections
有一个列表作为值,而该列表又包含包含特定的字典列表里面的钥匙。
我正在尝试验证 request.json
但找不到合适的方法。
这是棉花糖模式的代码:
class RowSchema(Schema):
nationalCustomerId = fields.Int(required=True)
storeId = fields.Int(required=True)
categoryId = fields.Int(required=True)
deliveryDate = fields.Date(required=True, format="%Y-%m-%d")
class RequestSchema(Schema):
combinations = fields.List(RowSchema)
我试图用 RequestSchema
验证 request.json
。
我发送的request.json
如下:
{
"combinations": [
{
"nationalCustomerId": 1,
"storeId": 1,
"categoryId": 1,
"deliveryDate": "2020-01-20"
}
]
}
我哪里出错了?
这是我遇到的错误:
ValueError: The list elements must be a subclass or instance of marshmallow.base.FieldABC.
您在 fields.List
fields.Nested
class RowSchema(Schema):
nationalCustomerId = fields.Int(required=True)
storeId = fields.Int(required=True)
categoryId = fields.Int(required=True)
deliveryDate = fields.Date(required=True, format="%Y-%m-%d")
class RequestSchema(Schema):
combinations = fields.List(fields.Nested(RowSchema))