Vérifier un champ
Fait partie de la section Formulaires du Journey Django de Coddy. Leçon 10 sur 20.
Le formulaire accepte un événement daté de l'année dernière. Les vérifications intégrées de Django connaissent les types et les limites, mais pas les règles de votre site. Une règle qui vous est propre concernant un champ se place dans une méthode nommée clean_ suivie du nom du champ. Un formulaire d'inscription qui réserve le nom admin au personnel :
class SignupForm(forms.Form):
username = forms.CharField(max_length=30)
def clean_username(self):
username = self.cleaned_data["username"]
if username.lower() == "admin":
raise forms.ValidationError("That name is reserved.")
return usernameis_valid() l'appelle après les vérifications propres au champ, donc la valeur est déjà convertie : un DateField renvoie une date. Lever forms.ValidationError rejette le champ, et le message apparaît à côté de celui-ci.
La méthode doit renvoyer la valeur : ce qu'elle renvoie se retrouve dans cleaned_data. Sans le return, la valeur devient None.
Défi
FacileDans EventForm, refuse une date antérieure à aujourd’hui avec le message The date cannot be in the past. Une date correspondant à aujourd’hui convient.
Ajoute un événement daté d’hier, saisi au format 2026-10-30 : tu vois The date cannot be in the past.
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)
description = forms.CharField(widget=forms.Textarea, required=False)
capacity = forms.IntegerField(min_value=1)
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