Как требовать предопределенные строковые значения в python pydanti c базовых моделях? - PullRequest
1 голос
/ 15 апреля 2020

Есть ли какой-нибудь встроенный способ в пиданти c для указания параметров? Например, допустим, я хочу получить строковое значение, которое должно иметь значение «foo» или «bar».

Я знаю, что для этого можно использовать проверку регулярных выражений, но поскольку я использую pydanti c с FastAPI, пользователи увидят только требуемый ввод в виде строки, но когда они введут что-то, это выдаст ошибку проверки. Все встроенные проверки pydanti c отображаются в интерфейсе API, поэтому было бы здорово, если бы было что-то вроде

class Input(BaseModel):
     option: "foo" || "bar"

1 Ответ

1 голос
/ 16 апреля 2020

Да, вы можете использовать перечисление:

class Choices(Enum):
    foo = 'foo'
    bar = 'bar'

class Input(BaseModel):
     option: Choices

см. здесь

Или вы можете использовать Literal:

class Input(BaseModel):
     option: Literal['foo', 'bar']

см здесь

...