2017-10-17 53 views
0

比方说,我有一个超扩展验证列表在子类中模型

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

和子类

class Sub(Super): 
    ... 

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

回答

1

当子类具体模型时,您不应该重写字段定义。我会认为这是自定义验证,并把这个地方是clean。该文档仅以多场验证为例,它们不排除任何其他类型的验证:

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