Un formulaire Django
Fait partie de la section Formulaires du Journey Django de Coddy. Leçon 5 sur 20.
Envoyez le formulaire sans date et le site plante : Django ne peut pas convertir un texte vide en date. Vérifier chaque champ à la main nécessiterait du code pour chaque champ et chaque erreur.
Un formulaire Django décrit les champs une seule fois, dans forms.py, et chaque champ sait ce qu’il accepte. Le formulaire de réservation d’un restaurant :
from django import forms
class BookingForm(forms.Form):
name = forms.CharField(max_length=50)
day = forms.DateField()
guests = forms.IntegerField()Chaque champ est obligatoire, sauf indication contraire, et un CharField supprime d’abord les espaces, donc un nom composé uniquement d’espaces est considéré comme vide.
Dans la vue, créez le formulaire à partir des données reçues et appelez is_valid() : cette méthode vérifie chaque champ et renvoie True ou False. Ensuite, form.cleaned_data contient les valeurs converties en Python. Ainsi, cleaned_data["day"] est un datetime.date, et non du texte :
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]Défi
Facile- Dans
events/forms.py, écrivezEventForm:titleetplacesous forme de texte de 100 caractères au maximum, etdatesous forme de date. - Dans
new_event, vérifiez le POST avec ce formulaire. S’il est valide, créez l’événement à partir des valeurs converties et redirigez l’utilisateur. Sinon, affichez la page avecerrordéfini surPlease check the form.
Appuyez sur Run et envoyez le formulaire sans date.
Essayez vous-même
from django import forms
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