python / intermediate
Snippet
Feldspezifische Validierungslogik in Django-Formularen
Django-Formulare führen bei der Validierung automatisch `clean_<feldname>()`-Methoden aus, um benutzerdefinierte Regeln für einzelne Felder durchzusetzen.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
from django import formsfrom django.core.exceptions import ValidationErrorclass RegistrationForm(forms.Form):username = forms.CharField(max_length=50)def clean_username(self):data = self.cleaned_data["username"]if "admin" in data.lower():raise ValidationError("Reserved username requested.")return data
django
Erklärung
1
from django import forms
Importiert das Django-Formularmodul zur Erstellung von Standard-Formulardefinitionen.
2
from django.core.exceptions import ValidationError
Importiert ValidationError, um Fehler auszulösen, wenn Eingaben Geschäftsregeln verletzen.
3
class RegistrationForm(forms.Form):
Definiert eine benutzerdefinierte Django-Formularklasse, die von forms.Form erbt.
4
username = forms.CharField(max_length=50)
Deklariert ein Benutzername-Eingabefeld mit einer maximalen Länge von 50 Zeichen.
5
def clean_username(self):
Definiert eine Bereinigungs-Methode speziell für das Benutzername-Eingabefeld.
6
data = self.cleaned_data["username"]
Extrahiert den normalisierten Wert aus dem cleaned_data-Dictionary.
7
if "admin" in data.lower():
Prüft, ob der kleingeschriebene Benutzername eine verbotene Zeichenfolge enthält.
8
raise ValidationError("Reserved username requested.")
Löst eine ValidationError mit einer Fehlermeldung aus, wenn der Name ungültig ist.
9
return data
Gibt den bereinigten Feldwert zurück, damit er in cleaned_data gespeichert wird.