is_valid en cleaned_data
Valideer invoer en lees opgeschoonde waarden uit.
is_valid en cleaned_data is een gratis Django Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Django Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Django Academy bevat in totaal 4 lessen.
Bind eerst de gegevens
Maak voor validatie een gebonden formulier door de verzonden gegevens eraan door te geven. Alleen gebonden formulieren kunnen worden gevalideerd.
form = ContactForm(request.POST)is_valid() aanroepen
is_valid() voert alle veldvalidatie uit en geeft alleen True terug als alle controles slagen. De hele opschoning wordt hiermee gestart.
if form.is_valid():
handle(form)cleaned_data verschijnt
Nadat is_valid() True teruggeeft, vult Django cleaned_data in: een woordenboek met gevalideerde en naar het juiste type omgezette waarden die klaar zijn voor gebruik.
name = form.cleaned_data["name"]Waarden worden omgezet
Opschonen zet ook typen om. Een IntegerField geeft je een echte int en een DateField een Python-datum, geen onbewerkte tekenreeksen.
age = form.cleaned_data["age"] # intFouten worden automatisch verzameld
Als validatie mislukt, komen de meldingen in form.errors, gegroepeerd op veldnaam zodat je elk probleem duidelijk kunt tonen.
if not form.is_valid():
print(form.errors)clean-methoden op veldniveau
Voeg een methode met de naam clean_field toe om één veld te valideren en de opgeschoonde waarde terug te geven. Werp ValidationError op om de waarde af te wijzen.
def clean_name(self):
name = self.cleaned_data["name"]
return name.strip()ValidationError opwerpen
Werp binnen een clean-methode ValidationError met een melding op om de waarde af te wijzen en een fout aan dat veld te koppelen.
if "@" not in email:
raise forms.ValidationError("Bad email")clean() voor het hele formulier
Overschrijf clean() om velden met elkaar te valideren, bijvoorbeeld om te controleren of twee wachtwoorden in het hele formulier overeenkomen.
def clean(self):
cleaned = super().clean()
return cleanedControles tussen velden
In clean() kun je meerdere sleutels uit cleaned_data lezen en een fout opwerpen wanneer hun combinatie ongeldig is.
if start > end:
raise forms.ValidationError("Bad range")De volgorde van het opschonen
Django voert eerst de veldopschoning uit en daarna de clean() voor het hele formulier. Daarom kan clean() veilig vertrouwen op al gevalideerde veldwaarden.
cleaned_data veilig gebruiken
Lees invoer altijd uit cleaned_data, nooit uit request.POST. Alleen cleaned_data bevat gevalideerde, omgezette en betrouwbare waarden.
email = form.cleaned_data["email"]Snelle controle
Test hoe goed je validatie beheerst.
Samenvatting
Bind de gegevens, roep is_valid() aan en lees daarna betrouwbare waarden uit cleaned_data. Gebruik clean-methoden om je eigen regels toe te voegen. ✅
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “is_valid en cleaned_data” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Django Academy, waaronder “is_valid en cleaned_data”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Django Academy bevat in totaal 4 lessen.
Wat leer ik in “is_valid en cleaned_data”?
Valideer invoer en lees opgeschoonde waarden uit. Je oefent met Django Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Django Academy te beginnen?
Ervaring vooraf is niet nodig. Django Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “is_valid en cleaned_data”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Django Academy?
Ja. Elke les over Django Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Een forms.Form definiëren
- is_valid en cleaned_data
- Formulieren renderen in templates
- CSRF-bescherming en de POST-flow