Menu
CoddyTech

Validation intégrée

Fait partie de la section Formulaires du Journey Django de Coddy. Leçon 9 sur 20.

Un événement nécessite une description et un nombre de places. Chaque champ de formulaire vérifie son propre type de valeur, et ses arguments ajoutent des règles. Tu en as rencontré deux : chaque champ est obligatoire, et max_length=100 refuse un titre plus long.

  • forms.IntegerField(min_value=1, max_value=5) : un nombre entier compris entre les limites.
  • forms.EmailField() : refuse le texte qui n’est pas une adresse e-mail.
  • required=False sur n’importe quel champ : celui-ci peut rester vide.

Un widget détermine la manière dont un champ est affiché : widget=forms.Textarea crée une grande zone de texte. Un formulaire d’avis sur un produit :

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)

Un champ de texte facultatif vide donne "" dans cleaned_data ; un champ numérique facultatif vide donne None. La boucle de ton modèle affiche les nouveaux champs sans modification.

challenge icon

Défi

Facile

Ajoute deux champs à EventForm :

  • description : du texte dans une grande zone, qui peut rester vide.
  • capacity : un nombre entier d’au moins 1.

Dans new_event, enregistre les deux dans l’événement. Clique sur Run et ouvre /events/new/.

Essayez vous-même

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Formulaires

Entraînez-vous par vous-même : Playground Django