Django模型中的clean和full_clean函数之间的主要区别是什么?
答案 0 :(得分:1)
它们并不互相反对,通常你称之为 Model.full_clean() 能够触发 Model.clean() 进行服装验证 例如:
from django.core.exceptions import ValidationError
from django.db import models
class Brand(models.Model):
title = models.CharField(max_length=512)
def clean(self):
if self.title.isdigit():
raise ValidationError("title must be meaningful not only digits")
def save(self, *args, **kwargs):
self.full_clean()
return super().save(*args, **kwargs)
答案 1 :(得分:0)
Model.full_clean( exclude = None,validate_unique = True ):
此方法调用
Model.clean_fields()
,Model.clean()
和Model.validate_unique()
(如果validate_unique
是True
),按此顺序 并引发一个具有ValidationError
属性的message_dict
包含所有三个阶段的错误。
Model.clean():
此方法应用于提供自定义模型验证,并用于 根据需要修改模型上的属性。
有关详细说明,请参阅文档的Validating objects部分。