[英]How to validate based on specific Enum member in a Fastapi Pydantic model
[英]Pydantic model does not validate on assignment with reproducable code
將不正確的屬性分配給 Pydantic model 字段時,不會發生驗證錯誤。
from pydantic import BaseModel
class pyUser(BaseModel):
username: str
class Config:
validate_all = True
validate_assignment = True
person = pyUser(username=1234)
person.username
>>>1234
try_again = pyUser()
pydantic.error_wrappers.ValidationError:
[ErrorWrapper(exc=MissingError(), loc=('username',))]
<class '__main__.pyUser'>
如何讓 pydantic 驗證分配?
根據文檔,這是預期的行為:
str
字符串按原樣接受,
int
,float
和Decimal
使用str(v)
強制
您可以使用StrictStr
、 StrictInt
、 StrictFloat
和StrictBool
類型來防止來自兼容類型的強制。
from pydantic import BaseModel, StrictStr
class pyUser(BaseModel):
username: StrictStr
class Config:
validate_all = True
validate_assignment = True
person = pyUser(username=1234) # ValidationError `str type expected`
print(person.username)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.