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 recusa um título mais longo.
min_valueem umIntegerField: recusa um número menor.required=Falseem qualquer campo: ele pode ficar vazio.
Um componente visual decide como um campo é exibido: widget=forms.Textarea cria uma caixa de texto grande. Um formulário de reserva para um jogo de tabuleiro:
class TableForm(forms.Form):
players = forms.IntegerField(min_value=2)
wishes = forms.CharField(widget=forms.Textarea, max_length=500)
phone = 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 modelo exibe os novos campos sem nenhuma alteração.
Desafio
FácilOs eventos recebem uma descrição e um número de vagas.
- Em
events/forms.py, adicionedescriptionaEventForm: texto em uma caixa grande, que pode ficar vazia. Adicionecapacity: um número inteiro de pelo menos 1. - Em
new_event, salve ambos no evento.
Adicione um evento com capacidade 25 e sem descrição: a página dele mostra 25 vagas.
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