我发现有用的基本模式是放入所有自定义验证clean()
,然后从内部简单地调用full_clean()
(调用clean()
和其他一些方法)save()
,例如:
class BaseModel(models.Model):
def clean(self, *args, **kwargs):
# add custom validation here
super(BaseModel, self).clean(*args, **kwargs)
def save(self, *args, **kwargs):
self.full_clean()
super(BaseModel, self).save(*args, **kwargs)