在PUDNIC模型中验证子对象的过程中,是否可以使用包含对象的属性?
给定json数据:
# example.json
{
"multiplier": 5,
"field_1": {
"value": 1
},
"field_2": {
"value": 2
}
}
以及相应的皮丹蒂克模型:
# example.py
from pydantic import BaseModel, validator
class Item(BaseModel):
value: int
class Container(BaseModel):
multiplier: int
field_1: Item
field_2: Item
在验证Item
个值的过程中,是否可以使用Container
对象的multiplier
属性?例如,我想在运行时对Item
执行类似的操作:
class Item(BaseModel):
value: int
@validator("value")
@classmethod
def validate_value(cls, value):
return value # * multiplier # <--- can I get access to Container's multiplier here?
但我不能确定在这种情况下是否有可能获得Container.multiplier
的值?
在我的实际用例中,嵌套要深得多,因此我不希望验证器位于Container
级别,因为访问变得相当复杂,但我也不想在项级别向下复制multiplier
值?在这种类型的模型中,有没有办法在对象层次 struct 中上下传递参数?