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_valuesur unIntegerField: refuse un nombre plus petit.required=Falsesur 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.
Défi
FacileLes événements ont une description et un nombre de places.
- Dans
events/forms.py, ajoutezdescriptionàEventForm: du texte dans une grande zone, qui peut rester vide. Ajoutezcapacity: un nombre entier d’au moins 1. - 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)
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
2Formulaires Django
Un formulaire DjangoCréer un formulaire3Formulaires de modèle
Un formulaire de modèleModifier un événementSupprimer un événementMessages de réussiteEntraînez-vous par vous-même : Playground Django