Size: a a a

2021 June 10

AT

Andrey Terekhov in Moscow Python
тебе нужен валидатор на cards
источник

AT

Andrey Terekhov in Moscow Python
чтобы в нём приводить к нужному типу и отдавать на вход модели
источник

AC

Alexei Che in Moscow Python
Ну только TaxesToSignCard наследуются от ещё одного класса , а тот от Base
источник

AT

Andrey Terekhov in Moscow Python
у тебя наверно поля и типы в них ещё разные
источник

AT

Andrey Terekhov in Moscow Python
можно такой же пример сделать, только у одного id: int, а у другого id: str
источник

AC

Alexei Che in Moscow Python
Типы одинаковые листы с диктами, но дикты разные
источник

ПМ

Павел Мальцев... in Moscow Python
from pydantic import BaseModel
from typing import List, Union


class Parent(BaseModel):
   f: str


class TaxesToBePaidCard(Parent):
   id: int


class TaxesToSignCard(Parent):
   id: int


class Test(BaseModel):
   cards: Union[List[TaxesToBePaidCard], List[TaxesToSignCard]]


cards_1 = TaxesToBePaidCard(id=1, f="1")

cards_2 = TaxesToSignCard(id=1, f="1")


test_1 = Test(cards=[cards_1])
test_2 = Test(cards=[cards_2])

print(test_1.dict())
print(test_2.dict())
источник

AT

Andrey Terekhov in Moscow Python
да я про содержимое и говорю
источник

ПМ

Павел Мальцев... in Moscow Python
всё равно работает
источник

AT

Andrey Terekhov in Moscow Python
щас воспроизведу
источник

AC

Alexei Che in Moscow Python
Уже понял
источник

AC

Alexei Che in Moscow Python
Хм...
источник

ПМ

Павел Мальцев... in Moscow Python
но кастует неверно
источник

AT

Andrey Terekhov in Moscow Python
к первому указанному приводит?
источник

ПМ

Павел Мальцев... in Moscow Python
да
источник

ПМ

Павел Мальцев... in Moscow Python
моя любимая особенность пидантика
источник

AT

Andrey Terekhov in Moscow Python
ага
источник

AT

Andrey Terekhov in Moscow Python
Поменяй местами типы ради интереса
источник

AT

Andrey Terekhov in Moscow Python
ща поправлю, опечатка)
источник

AC

Alexei Che in Moscow Python
Тогда не сработает другая валидация
источник