Menu
CoddyTech

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_value em um IntegerField: recusa um número menor.
  • required=False em 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.

challenge icon

Desafio

Fácil

Os eventos recebem uma descrição e um número de vagas.

  1. Em events/forms.py, adicione description a EventForm: texto em uma caixa grande, que pode ficar vazia. Adicione capacity: um número inteiro de pelo menos 1.
  2. 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)
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Playground de Django