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.jsonwith RequestSchema

request.json发送如下:

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

我在哪里犯错?

这是我得到的错误:

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

4

1 回答 1

4

你缺少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))

于 2020-02-12T23:50:23.883 回答