如何在 python pydantic basemodels 中要求预定义的字符串值?

How to require predefined string values in python pydantic basemodels?

pydantic 中是否有任何内置的方式来指定选项?例如,假设我想要一个必须具有值 "foo" 或 "bar".

的字符串值

我知道我可以使用正则表达式验证来执行此操作,但由于我将 pydantic 与 FastAPI 一起使用,用户只会看到所需的字符串输入,但当他们输入内容时,会出现验证错误。 pydantic 的所有内置验证都显示在 api 界面中,所以如果有类似

的东西会很棒
class Input(BaseModel):
     option: "foo" || "bar"

是的,您可以使用枚举:

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

class Input(BaseModel):
     option: Choices

here

或者您可以使用 Literal:

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

here