Pydantic как сделать input в BaseModel,если множество валидаторов

Рейтинг: 0Ответов: 1Опубликовано: 20.02.2023

Есть pydantic User(basemodel).

Нужно сделать заполнение формы через input, присутствуют валидаторы и рут валидаторы. Прописал

User(name=input("")
User(last_name=input("") 

И так далее. Валидаторы срабатывают только после заполнения всех значений, хотя для каждого значения свой валидатор, либо рут валидатор срабатывает до заполнения формы за которую он отвечает. Далее Basemodel нужно добавить в json список.

Помогите)это дз после второго урока по Пайтону😰

Ответы

▲ 1Принят

после заполнения всех значений

Это ключевой момент. Сначала нужно собрать все значения, а уже потом создавать объект:

user_attrs = {}
user_attrs["name"] = input()
user_attrs["last_name"] = input()

user = User(**user_attrs)

Либо так:

user = User(name=input(), last_name=input())