Код: Выделить всё
from pydantic import BaseModel
class MyModel(BaseModel):
author_id: int | None # Case 1: throws error
author_id: Optional[int] # Case 2: throws error
author_id: int = None # Case 3: works
Когда я используюauthor_id: int | Нет, я получаю сообщение об ошибке, сообщающее, что обязательное поле отсутствует. Однако, если я изменю его наauthor_id: Необязательный[int], я столкнусь с той же ошибкой. Но когда я используюauthor_id: int = None илиauthor_id:Optional[int] = None, модель работает как положено, без ошибок. (Работает, если присутствует =)
Есть ли у вас какие-либо рекомендации о том, как правильно определять необязательные поля в моделях Pydantic? Существует ли конкретная версия Pydantic (или другой библиотеки), поддерживающая int | Ни один синтаксис не правильный?
- python==3.11
- pydantic==2.8.1
- fastapi==0.111.1
Мобильная версия