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 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=False em 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.

challenge icon

Desafio

Fácil

Adicione 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)
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