pypytic值不存在



class Foo(BaseModel):
a: str
b: str
@validator('a')
def a_valid(cls, v, values):
print(values)
return v
Foo(a='a', b='b')
# prints '{}'

当我尝试访问模型中的其他值时,我得到一个空字典。我期待a dict containing the name-to-value mapping of any previously-validated fields

也许我没有理解previously-validated fields是什么意思

字段按照在您的模型中定义的顺序进行处理。验证a时,b尚未设置。如果您需要访问其他字段,您可能需要root_validator:

from pydantic import BaseModel, root_validator

class Foo(BaseModel):
a: str
b: str
@root_validator
def a_valid(cls, values):
print(values)
return values

Foo(a="a", b="b")
# prints '{'a': 'a', 'b': 'b'}'

或者,您可以更改模式中字段的顺序:

from pydantic import BaseModel, validator

class Foo(BaseModel):
b: str
a: str
@validator("a")
def a_valid(cls, v, values):
print(values)
return values

Foo(a="a", b="b")
# prints '{'b': 'b'}'

相关内容

  • 没有找到相关文章

最新更新