扩展子类模型中的验证器列表

时间:2017-10-17 11:58:09

标签: django

让我们说,我有一个超类

class Super(models.Model):
    f = models.CharField(validators=[relaxed_validator, ], ...)

和子类

class Sub(Super):
    ...

对于Sub,我想让f字段验证更严格,并运行validators=[relaxed_validator, strict_validator,]。这样做的“正确”方法是什么?我可以创建一个clean()方法,但这通常用于多字段验证。我可以以某种方式扩展子类中的验证器列表吗?

1 个答案:

答案 0 :(得分:2)

在子类化具体模型时,不应该覆盖字段定义。我认为这是自定义验证,正确的地方是clean。文档仅以多字段验证为例,它们不排除任何其他类型的验证:

class Sub(Super):
    def clean(self)
        super(Sub, self).clean()
        strict_validator(self.f)