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 déjà rencontré deux : chaque champ est obligatoire, et max_length=100 refuse un titre plus long.

  • min_value sur un IntegerField : refuse un nombre plus petit.
  • required=False sur n’importe quel champ : il peut rester vide.

Un widget détermine la façon dont un champ est affiché : widget=forms.Textarea crée une grande zone de texte. Un formulaire de réservation pour un jeu de société :

class TableForm(forms.Form):
    players = forms.IntegerField(min_value=2)
    wishes = forms.CharField(widget=forms.Textarea, max_length=500)
    phone = forms.CharField(required=False)

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

challenge icon

Défi

Facile

Les événements ont une description et un nombre de places.

  1. Dans events/forms.py, ajoutez description à EventForm : du texte dans une grande zone, qui peut rester vide. Ajoutez capacity : un nombre entier d’au moins 1.
  2. Dans new_event, enregistrez les deux sur l’événement.

Ajoutez un événement avec une capacité de 25 et sans description : sa page affiche 25 places.

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