在Model.full_clean中,为什么在clean之前调用clean_fields?

时间:2012-06-26 21:02:09

标签: django django-models

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

在{{1}}中更改此排序会有任何问题吗?

1 个答案:

答案 0 :(得分:6)

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