is_valid e cleaned_data
Valide a entrada e leia valores limpos
is_valid e cleaned_data é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Django Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Django Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Bind Data First
To validate, create a bound form by passing the submitted data into it. Only bound forms can be validated.
form = ContactForm(request.POST)Call is_valid()
is_valid() runs every field validation and returns True only if all of them pass. It triggers the whole cleaning process.
if form.is_valid():
handle(form)cleaned_data Appears
After is_valid() returns True, Django fills cleaned_data, a dict of validated, type-converted values ready to use.
name = form.cleaned_data["name"]Values Are Converted
Cleaning converts types too. An IntegerField gives you a real int, and a DateField gives you a Python date, not raw strings.
age = form.cleaned_data["age"] # intErrors Collect Automatically
If validation fails, the messages land in form.errors, keyed by field name so you can show each problem clearly.
if not form.is_valid():
print(form.errors)Field-Level clean Methods
Add a method named clean_field to validate one field and return its cleaned value. Raise ValidationError to reject it.
def clean_name(self):
name = self.cleaned_data["name"]
return name.strip()Raise ValidationError
Inside a clean method, raise ValidationError with a message to reject the value and attach an error to that field.
if "@" not in email:
raise forms.ValidationError("Bad email")Form-Wide clean()
Override clean() to validate fields against each other, like confirming two passwords match across the whole form.
def clean(self):
cleaned = super().clean()
return cleanedCross-Field Checks
In clean() you can read several cleaned_data keys and raise an error when their combination is invalid.
if start > end:
raise forms.ValidationError("Bad range")The Cleaning Order
Django runs field cleaning first, then your form-wide clean(). So clean() can safely rely on already-validated field values.
Use cleaned_data Safely
Always read input from cleaned_data, never from request.POST. Only cleaned_data holds validated, converted, trusted values.
email = form.cleaned_data["email"]Quick Check
Test your grip on validation.
Recap
Bind data, call is_valid(), then read trusted values from cleaned_data. Use clean methods to add your own rules. ✅
Perguntas Frequentes
A aula “is_valid e cleaned_data” é grátis?
Sim — o texto completo de “is_valid e cleaned_data” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Django Academy, atualize para CoddyKit PRO. O curso de Django Academy inclui 4 aulas no total.
O que vou aprender em “is_valid e cleaned_data”?
Valide a entrada e leia valores limpos Você pratica Django Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Django Academy?
Nenhuma experiência prévia é necessária. Django Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “is_valid e cleaned_data”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Django Academy?
Sim. Cada aula de Django Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Definindo um forms.Form
- is_valid e cleaned_data
- Renderizando Formulários em Templates
- Proteção CSRF e o Fluxo POST