Как проверить список элементов указанного типа c в зефире? - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть конечная точка POST в flask, которая принимает данные json, которые содержат ключ - collections, который имеет список в качестве значения, который, в свою очередь, содержит список словарей, содержащих определенные c ключи.

Я пытаюсь проверить 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)

I пытался проверить request.json с помощью RequestSchema.

Отправляемое request.json выглядит следующим образом:

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

Где я делаю ошибку?

Это ошибка, которую я получаю:

ValueError: Элементы списка должны быть подклассом или экземпляром marshmallow.base.FieldAB C.

1 Ответ

1 голос
/ 13 февраля 2020

Вам не хватает 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))

...