提问人:FlightPlan 提问时间:10/28/2023 最后编辑:FlightPlan 更新时间:10/28/2023 访问量:127
Pydantic V2 中的计算字段 - 我可以添加别名进行验证和序列化吗?
Computed fields in Pydantic V2 - can I add aliases for validation and serialization?
问:
上下文
在 Pydantic 模型中,我想根据第三个字段包含的值来设置两个字段的值。但是我还想设置一些细微的别名。
因此,如果我们有:
class FooModel(BaseModel):
data_holder: list = Field(..., exclude=True)
# Values of bar and baz below will be set based on values in data_holder
bar: int = Field(..., validation_alias=AliasChoices(‘bar’, ‘Bar’), serialization_alias=‘Bar’)
baz: int = Field(..., validation_alias=AliasChoices(‘baz’, ‘Baz’), serialization_alias=‘Baz’)
我这样做:
foo = FooModel(data_holder=[123, 456])
我想要:
# The model will compute:
bar=123 # Field validation and serialization rules apply
baz=456 # Field validation and serialization rules apply
# Such that:
print(bar)
#> Bar='123'
print(baz)
#> Baz='456'
问题
--> 这是否可以使用@computed_field
,或者是否有其他推荐的方法可以做到这一点?
计算字段似乎是显而易见的方式,但根据文档,我看不到添加验证和序列化别名选项的方法。我相信在 V1 中提供了一个解决方案,但已弃用。我也考虑过使用“之前”,但还没有让它与我的实际用例一起使用。(现实世界的上下文更混乱,实际上是另一个 Pydantic 模型)。root_validator
field_validator
data_holder
答: 暂无答案
上一个:连接响应验证
评论