据我所知,在创建Django应用程序时,表单在将数据插入模型实例之前对其进行验证,然后再将模型实例写入数据库.但是,如果我想在数据模型层创建一个额外的保护层,那么我所做的是否低于当前的"最佳实践"呢?我正在努力确保审稿人的名字不会被遗漏,也不会留空.我是否应该像我在这里所做的那样,在‘CLEAN’方法中加入任何自定义验证,然后让‘SAVE’调用‘FULL_CLEAN’,后者调用‘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)