Um formulário do Django
Parte da seção Forms do Journey de Django da Coddy. Lição 5 de 20.
Envie o formulário sem uma data e o site trava: o Django não consegue converter texto vazio em uma data. Verificar cada campo manualmente exigiria código para cada campo e cada erro.
Um formulário do Django descreve os campos uma vez, em forms.py, e cada campo sabe o que aceita. O formulário de reserva de um restaurante:
from django import forms
class BookingForm(forms.Form):
name = forms.CharField(max_length=50)
day = forms.DateField()
guests = forms.IntegerField()Todos os campos são obrigatórios, a menos que você indique o contrário, e um CharField remove os espaços primeiro, então um nome composto apenas por espaços é considerado vazio.
Na view, crie o formulário com os dados recebidos e chame is_valid(): ele verifica todos os campos e retorna True ou False. Então, form.cleaned_data contém os valores convertidos para Python, portanto cleaned_data["day"] é um datetime.date, não texto:
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]Desafio
FácilDeixe um formulário do Django verificar o novo evento.
- Em
events/forms.py, escrevaEventForm:titleeplacecomo texto de até 100 caracteres,datecomo uma data. - Em
new_event, crie o formulário a partir derequest.POST. Se for válido, crie o evento a partir deform.cleaned_datae redirecione para ele. Caso contrário, definaerrorcomoPlease check the form.
Envie o formulário sem uma data: você verá Verifique o formulário.
Experimente você mesmo
from django import forms
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