Для класса FastAPI Pydanctic у меня есть эти значения
class ErrorReportRequest(BaseModel):
sender: Optional[str] = Field(..., description="Who sends the error message.")
error_message_displayed_to_client: str = Field(..., description="The error message displayed to the client.")
Я использую класс как входную модель
router = APIRouter()
@router.post(
"/error_report",
response_model=None,
include_in_schema=True,
)
def error_report(err: ErrorReportRequest):
pass
Когда я запускаю это, sender
является обязательным полем. Если он не включен во входящий JSON, я получаю сообщение об ошибке проверки.
Вход:
{
"error_message_displayed_to_client": "string"
}
Результаты в:
{
"detail": [
{
"loc": [
"body",
"sender"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}
Если я удалю описание поля следующим образом:
class ErrorReportRequest(BaseModel):
sender: Optional[str]
error_message_displayed_to_client: str = Field(..., description="The error message displayed to the client.")
запрос проходит.
Как я могу добавить описание поля к необязательному полю, чтобы по-прежнему можно было опускать имя поля?