Derzeit bietet Django keine Validierung auf Modellebene (neben den grundlegenden "NOT NULL" -, "UNIQUE" - und Längenvalidierungen). Dies ist auf der TODO-Liste, wird aber wahrscheinlich nicht in die kommende Version 1.1 passen.
Sie können validierungsbezogene Tasks in der save()
-Methode Ihres Modells ausführen oder before_save
signal verwenden (das Anheben der Ausnahme im Signalhandler führt dazu, dass die Transaktion zurückgesetzt wird).
Im Allgemeinen sollten Sie in der Lage sein, mit den von Ihnen erstellten Feldtypen umzugehen und ihre Optionen oder die Meta-Optionen des Modells . Sie können auch die Save-Methode überschreiben , um die Validierung durchzuführen / Hygiene. Wenn das nicht ausreicht, können Sie Ihren eigenen Feldtyp erstellen .
Das Problem ist, dass es kein gut erwartetes Verhalten gibt. Was soll passieren? Sollte eine Ausnahme ausgelöst werden? Die Felder sind eigentlich nur eine Abstraktion auf Datenbankebene, daher sollte es dort nicht mehr Informationen geben als das, was die Datenbank wissen muss.
Tags und Links django django-models