Folgende geschieht, ist mein Code ein Formular für die Erstellung von:Django - Form Validierung nicht
from django import forms
class Register(forms.Form):
username = forms.CharField(label='', max_length=64, required=True)
firstname = forms.CharField(label='', max_length=64, required=True)
surname = forms.CharField(label='sur name', max_length=64, required=True)
email = forms.EmailField()
Der Code meines view.py sich wie folgt:
from .forms import Register
def register(request):
form = Register()
return render(request, 'app/register.html', {'form': form})
Es ist die Anzeige der Form in die Webseite, aber sie validiert nicht den Benutzernamen, den Vornamen und den Nachnamen; während es das emailfield validiert.
Ich versuchte, die saubere Methode verwenden, und meine neue forms.py ist wie folgt:
from django import forms
class Register(forms.Form):
username = forms.CharField(label='', max_length=64, required=True)
firstname = forms.CharField(label='', max_length=64, required=True)
surname = forms.CharField(label='sur name', max_length=64, required=True)
email = forms.EmailField()
def clean_surname(self):
data = self.cleaned_data['surname']
if not data:
raise forms.ValidationError("This field is required")
return data
Was könnte das Problem sein? Mache ich etwas falsch. Bitte hilf mir dabei, ich bin neu in Django.
Vielen Dank, ich dachte die saubere Methode macht die Formularvalidierung. Auch wenn ich die clean-Methode verwende, soll ich die Postdaten in das Formular eingeben? – Jeril
Die 'clean()' Methode wird während der 'if form.is_valid()' Prüfung aufgerufen, und sie benötigt das Formular mit Daten gefüllt, also - ja, Sie müssen die POST Daten in das Formular übergeben. – rafalmp
Vielen Dank es hat funktioniert .. – Jeril