[英]How to validate a pydantic object after editing it
在更改某些屬性后,是否有任何明顯的證據可以驗證 pydantic model?
假設我創建了一個簡單的 Model 和 object:
from pydantic import BaseModel
class A(BaseModel):
b: int = 0
a=A()
然后對其進行編輯,使其實際上無效:
a.b = "foobar"
我可以強制重新驗證並期望引發ValidationError
嗎?
我試過了
A.validate(a) # no error
a.copy(update=dict(b='foobar')) # no error
起作用的是
A(**dict(a._iter()))
ValidationError: 1 validation error for A
b
value is not a valid integer (type=type_error.integer)
但這並不是很簡單,我需要使用所謂的私有方法_iter
。
有干凈的替代品嗎?
pydantic 可以為你做到這一點,你只需要validate_assignment
:
from pydantic import BaseModel
class A(BaseModel):
b: int = 0
class Config:
validate_assignment = True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.