pydantic:禁用儿童课程中的root_validator
是否可以在儿童类中禁用或删除或替换pydantic
中的超级阶级词根验证器?
这是一个示例:
from pydantic import BaseModel, root_validator
def parent_validator(cls, values):
print('parent validator triggered')
return values
def child_validator(cls, values):
print('child validator triggered')
return values
class ParentModel(BaseModel):
name: str
_custom_validator = root_validator()(parent_validator)
class ChildModel(ParentModel):
_custom_validator = root_validator()(child_validator)
m1 = ParentModel(name='example name')
# outputs:
# parent validator triggered
m2 = ChildModel(name='example name 2')
# outputs:
# parent validator triggered
# child validator triggered
预期行为:
m2 = ChildModel(name='example name 2')
# outputs:
# child validator triggered
对我来说,一个完美的解决方案就是这样:
class ChildModel(ParentModel):
_custom_validator = None
但是它似乎不起作用。 用pydantic == 1.9.1
尝试
Is it possible to disable or remove or replace superclass's root validator in pydantic
for child classes?
Here is an example:
from pydantic import BaseModel, root_validator
def parent_validator(cls, values):
print('parent validator triggered')
return values
def child_validator(cls, values):
print('child validator triggered')
return values
class ParentModel(BaseModel):
name: str
_custom_validator = root_validator()(parent_validator)
class ChildModel(ParentModel):
_custom_validator = root_validator()(child_validator)
m1 = ParentModel(name='example name')
# outputs:
# parent validator triggered
m2 = ChildModel(name='example name 2')
# outputs:
# parent validator triggered
# child validator triggered
Expected behaviour:
m2 = ChildModel(name='example name 2')
# outputs:
# child validator triggered
A perfect solution for me would be something like this:
class ChildModel(ParentModel):
_custom_validator = None
but it doesn't seem to work.
Tried with pydantic==1.9.1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论