django - 为什么在 Model.full_clean 中 clean_fields 在 clean 之前被调用?

标签 django django-models

Model.full_clean 中是否有理由在 clean 之前调用 clean_fields? 在我的项目中,如果我可以先进行验证,然后再验证 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 中更改此顺序会有任何问题吗?

最佳答案

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

关于django - 为什么在 Model.full_clean 中 clean_fields 在 clean 之前被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215871/

相关文章:

javascript - Django 应用过滤器重新加载数据表

自定义注册表单中的 Django allauth 访问请求

Django : form is not saved into my database

python - 将类变量名传递给类方法

javascript - 错误 : Uncaught SyntaxError: Unexpected end of JSON input

PostgreSQL 字段中的 Django ProgrammingError

python - "__str__ returned non-string (type int)"错误

django - Django 中默认 self._db 的值是多少?

python - 在 django 的元类中排除是什么意思?

python - Django 查询查找模型实例,其中 somefilefield == None?