Существует ли передовая практика определения необязательных полей в моделях Pydantic? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Существует ли передовая практика определения необязательных полей в моделях Pydantic? [дубликат]

Сообщение Anonymous »

Я работаю с Pydantic для проверки данных в проекте Python и столкнулся с проблемой при указании необязательных полей в моей базовой модели.

Код: Выделить всё

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
Теперь, запрашивая конечную точку, которая принимает указанную выше модель в качестве тела JSON, я не предоставляю полеauthor_id в запросе.
Когда я использую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
Ответить

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

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

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

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

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