Код: Выделить всё
class Level3(BaseModel):
deep_field: str
class Level2(BaseModel):
mid_field: str
level3: Level3
class Level1(BaseModel):
top_field: str
level2: Level2
class DepthLimitedModel(BaseModel):
name: str
level1: Level1
max_mapping_depth: ClassVar[int] = 1
new_model = DepthLimitedModel(name="Test", level1=Level1(top_field="Top", level2=Level2(mid_field="Mid", level3=Level3(deep_field="Deep")))
dumped = new_model.model_dump()
Я не могу найти интуитивно понятный способ сделать это, но ограничение глубины рекурсии кажется таким общеизвестно, что решение должно существовать.
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-pydantic