pydantic:禁用儿童课程中的root_validator

发布于 2025-01-30 18:10:39 字数 1000 浏览 1 评论 0原文

是否可以在儿童类中禁用或删除或替换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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文