python / intermediate
Snippet
Durchsetzen von Integritätsbedingungen auf Modellebene mit clean()
Das Überschreiben der `clean()`-Methode des Modells ermöglicht die Validierung von Abhängigkeiten über mehrere Felder hinweg, bevor Datensätze gespeichert werden.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
from django.db import modelsfrom django.core.exceptions import ValidationErrorclass Event(models.Model):start_date = models.DateField()end_date = models.DateField()def clean(self):if self.end_date < self.start_date:raise ValidationError("End date cannot precede start date.")
django
Erklärung
1
from django.db import models
Importiert Basisklassen für Django-Datenbankmodelle und Felddefinitionen.
2
from django.core.exceptions import ValidationError
Importiert ValidationError zur Signalisierung von Modellvalidierungsfehlern.
3
class Event(models.Model):
Definiert eine Datenbankmodellklasse, die ein Ereignis darstellt.
4
start_date = models.DateField()
Definiert ein Datumsfeld für den Startzeitpunkt des Ereignisses.
5
end_date = models.DateField()
Definiert ein Datumsfeld für den Endzeitpunkt des Ereignisses.
6
def clean(self):
Überschreibt die clean-Methode des Modells für feldübergreifende Validierungslogik.
7
if self.end_date < self.start_date:
Prüft, ob das Enddatum chronologisch vor dem Startdatum liegt.
8
raise ValidationError("End date cannot precede start date.")
Löst eine ValidationError aus, wenn die Datumsreihenfolge unlogisch ist.