我有以下代码:
item: Optional[int] = Field(None, ge=1, le=168)
我希望有可能也可以设置 -1
值。因此,我需要排除零值,但我仍然想允许-1
值和从 1
到 168
的值。
这可行吗?
-1
至168
,并使用自定义的Pydantic验证程序来检查该值是否等于0
。如果是,则raise ValueError
。如果Pydantic模型用于定义端点的查询参数(使用Depends()
),请参阅此答案。
from fastapi import FastAPI
from typing import Optional
from pydantic import Field, BaseModel, validator
app = FastAPI()
class Foo(BaseModel):
item: Optional[int] = Field(None, ge=-1, le=168)
@validator('item')
def prevent_zero(cls, v):
if v == 0:
raise ValueError('ensure this value is not 0')
return v
@app.post("/")
def submit(foo: Foo):
return foo
ge
表示大于或等于
,le
表示小于或等于
。如果你想要一个自定义范围,你需要相应地更改这些参数。例如,Field(None, ge=-1, le=168)
。 - Bijay Regmi