Validação integrada
Parte da seção Forms do Journey de Django da Coddy. Lição 9 de 20.
Um evento precisa de uma descrição e de um número de vagas. Cada campo do formulário verifica seu próprio tipo de valor, e seus argumentos adicionam regras. Você já conheceu duas: todos os campos são obrigatórios, e max_length=100 rejeita um título mais longo.
forms.IntegerField(min_value=1, max_value=5): um número inteiro dentro desses limites.forms.EmailField(): rejeita texto que não seja um endereço de e-mail.required=Falseem qualquer campo: ele pode ficar vazio.
Um widget determina como um campo é exibido: widget=forms.Textarea cria uma caixa de texto grande. Um formulário de avaliação de produto:
class ReviewForm(forms.Form):
stars = forms.IntegerField(min_value=1, max_value=5)
comment = forms.CharField(widget=forms.Textarea, max_length=500)
nickname = forms.CharField(required=False)Um campo de texto opcional vazio fornece "" em cleaned_data; um campo numérico opcional vazio fornece None. O loop do seu template exibe os novos campos sem nenhuma alteração.
Desafio
FácilAdicione dois campos a EventForm:
description: texto em uma caixa grande, que pode ficar vazia.capacity: um número inteiro de pelo menos 1.
Em new_event, salve ambos no evento. Clique em Run e abra /events/new/.
Experimente você mesmo
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Forms
2Formulários do Django
Um formulário do DjangoCriando um formulárioPratique por conta própria: Playground de Django