据我了解,当一个人创建 Django 应用程序时,数据在插入模型实例之前由表单验证,然后将其写入数据库。但是,如果我想在数据模型层创建一个额外的保护层,我所做的是否低于当前的“最佳实践”?我试图确保审稿人的姓名不能省略,也不能留空。我是否应该像我在这里所做的那样在“干净”方法中放置任何自定义验证,然后让“保存”调用“full_clean”来调用“干净”?如果没有,首选方法是什么?谢谢。
class Reviewer(models.Model):
name = models.CharField(max_length=128, default=None)
def clean(self, *args, **kwargs):
if self.name == '':
raise ValidationError('Reviewer name cannot be blank')
super(Reviewer, self).clean(*args, **kwargs)
def full_clean(self, *args, **kwargs):
return self.clean(*args, **kwargs)
def save(self, *args, **kwargs):
self.full_clean()
super(Reviewer, self).save(*args, **kwargs)