Как я понимаю, при создании приложения 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)