我正在尝试使用 model_validator (和 field_validator)验证某些字段。所以我有一个像这样的嵌套模型:
class Parent(Basemodel):
field1: List[Child]
class Child(AnotherModel):
field2: str
每个模型都有更多的字段,甚至还有更多的模型,但现在可以忽略它们。我想要做的是,将 model_validators 添加到每个模型中以验证某些值。我不能在单个验证中提出错误,因为我需要最后出现所有错误。 所以我的想法是将所有错误写入一个列表中,稍后我可以访问该列表(我可以设置一个错误字段并将其设置为 except=True,这样我以后就不会用模型转换它)。 但我怎样才能将错误列表传递给孩子们呢? 或者你有更好的方法来解决这个问题吗
感谢您的帮助:)
如果我的问题正确,您可以执行以下操作:
from pydantic import BaseModel, ValidationError
class Child(BaseModel):
field1: int
class Parent(BaseModel):
field1: list[Child]
field2: str
try:
Parent.model_validate({
"field1": [{"field1": 1}, {"field1": "should_raise_error"}], # Second value contains str instead of int
"field2": 1, # Int instead of str
})
except ValidationError as e:
print(e.json()) # Here will be all information about errors