Обязательное поле с разумным значением по умолчанию - PullRequest
0 голосов
/ 15 января 2020

Рассмотрим следующее

from pydantic import BaseModel, Field
class Model(BaseModel):
    required: str

Это сделает required обязательным полем для Model, однако в документах Swapger, автоматически сгенерированных FastAPI, в качестве примера будет указано значение "string".

Как создать обязательное поле с разумным значением по умолчанию? Если я создаю модель, подобную

from pydantic import BaseModel, Field
class Model(BaseModel):
    required: str = 'Sensible default'

, тогда поле required больше не требуется, но оно отображается с разумным значением по умолчанию в документах. Есть ли простой способ обойти это?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

Вы можете использовать Field () для настройки этих параметров и проверки.

from pydantic import BaseModel, Field
class Model(BaseModel):
    something: str # required, shows "string"
    something: str = None # not required, shows "string"
    something: str = Field(..., example="this is the default display") # required, shows example
    something: str = Field(None, example="Foobar") #not required, show example

Существует множество различных параметров, с которыми Field () может проверять.

1 голос
/ 15 января 2020

Я не изучал , почему представление модели (pydanti c) в версии openapi, поставляемой с FastAPI, пропускает звездочку, но поле определенно по-прежнему требуется (попробуйте ввести нулевое значение или что-либо, кроме строки). Это может быть просто несоответствие пользовательского интерфейса.

...