如何验证棉花糖中特定类型的元素列表?

问题描述 投票:0回答:1

我在烧瓶中有一个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)

我正在尝试用request.json验证RequestSchema

我要发送的request.json如下:

{
    "combinations": [
            {
                "nationalCustomerId": 1,
                "storeId": 1,
                "categoryId": 1,
                "deliveryDate": "2020-01-20"
            }
        ]
}

我在哪里犯错?

这是我得到的错误:

ValueError:列表元素必须是的子类或实例marshmallow.base.FieldABC。

post flask flask-restful marshmallow flask-marshmallow
1个回答
0
投票

您缺少fields.Nested内部的fields.List

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))

© www.soinside.com 2019 - 2024. All rights reserved.