Pydantic: проверка вложенной моделиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pydantic: проверка вложенной модели

Сообщение Anonymous »


У меня есть вложенная модель в Pydantic. У меня есть функция root_validator во внешней модели. У меня сложилось впечатление, что если вызывается внешний корневой валидатор, то внутренняя модель действительна. Но, видимо, нет. В следующем MWE я даю неправильное имя поля внутренней модели, но внешний валидатор дает сбой:

при вводе списка импорта из pydantic импорта BaseModel из pydantic.class_validators импортируйте root_validator класс CarList (BaseModel): автомобили: Список[str] цвета: Список[str] класс CarDealership(BaseModel): имя: ул. автомобили: CarList @root_validator() защита check_length(cls, v): cars_list = v.get("автомобили") if len(cars_list.cars) != len(cars_list.colors): поднять ValueError («неправильная длина») вернуть v car_deal = { "легковые автомобили": { "cars1": ["Toyota", "Tesla"], "colors": ["белый", "красный"] } } CarDealership.parse_obj(car_deal) Я получаю следующую ошибку:

Файл «test.py», строка 17, в check_length if len(cars_list.cars) != len(cars_list.colors): AttributeError: объект «NoneType» не имеет атрибута «автомобили». Я ожидал чего-то вроде:

pydantic.error_wrappers.ValidationError: 1 ошибка проверки для CarList легковые автомобили поле обязательно (type=value_error.missing) Как я могу убедиться, что внутренняя модель сначала проверена?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»