Ist dies der Weg, um Django-Modellfelder zu validieren?

Soweit ich weiß, werden Daten beim Erstellen einer Django-Anwendung durch das Formular validiert, bevor sie in eine Modellinstanz eingefügt werden, die dann in die Datenbank geschrieben wird. Wenn ich jedoch eine zusätzliche Schutzebene auf der Datenmodellebene erstellen möchte, ist das, was ich getan habe, unterhalb der aktuellen "Best Practice"? Ich versuche sicherzustellen, dass der Name eines Rezensenten nicht weggelassen oder leer bleibt. Sollte ich eine benutzerdefinierte Validierung in die 'clean'-Methode einfügen, wie ich es hier getan habe, und dann' save'-Aufruf 'full_clean' haben, der 'clean' aufruft? Wenn nicht, welche Methode wird bevorzugt? Danke.

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)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage