# blog/models.pyfrom django.core.exceptions import ValidationErrorfrom django.db import modelsdef validate_even(value): if value % 2 != 0: raise ValidationError(f"{value} is not an even number")class TestValidate(models.Model):
even_field = models.IntegerField(default=0, validators=[validate_even]) name = models.CharField(unique=True, max_length=20, default=None)
我们上面的操作是基于单个 model 的 save() 操作,如果我们要对每个 model 都实现这种自动进行校验的操作,那么则需要对每个 model 都进行这种 save() 的继承重写操作
如果想要实现每个 model 自动实现这种校验的操作,我们可以编写一个 BaseModel,在 BaseModel 里重写 save() 操作,然后每个 model 都继承 BaseModel,就可以实现我们的目的了。