在更改某些属性后,是否有任何明显的验证 pydantic 模型?
假设我创建了一个简单的模型和对象:
from pydantic import BaseModel
class A(BaseModel):
b: int = 0
a=A()
然后对其进行编辑,使其实际上无效:
a.b = "foobar"
我可以强制重新验证并期望ValidationError
提高 a 吗?
我试过
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
。
有干净的替代品吗?