3

Model.full_clean在, 之前clean_fields被调用是否有理由clean?在我的项目中,如果我可以先进行验证,然后再验证clean_fields内容,会更合理,例如在这种情况下:

class MyModel(models.Model):
    status = models.IntegerField(blank=False, null=False)

    def clean(self):
        if not self.status:
            self.status = 0

改变这个顺序会有什么问题full_clean吗?

4

1 回答 1

8

为什么会“更合理”?正如其名称所描述的,clean_fields旨在单独清理每个字段,而 的目的clean只是验证字段交互。例如,只有在设置了另一个字段时,一个字段才能为空等。clean_fields首先调用该方法以确保您可以实际验证这些交互;如果这些字段通常有错误,那么一起验证它们是没有意义的。

于 2012-06-26T21:21:46.187 回答