Professional Documents
Culture Documents
TP5 Formulaire
TP5 Formulaire
La création de formulaires avec Django est assez simple et pleine de fonctionnalités. Vous
pouvez générer des formulaires à partir de vos modèles ou bien les créer directement depuis
des classes.
Question1 : Créer un projet Django intitulé … dans un environnement virtuel python
Question2: Créer dans ce projet une application nommé MyContact
Question3 : Vous devrez également créer un modèle que vous appelerez Contact avec les
champs suivants :
• firstname
• lastname
• Email
• Message :
Question4: Appliquer les migrations pour créer la base de données
Question5 : Dans le fichier models.py ajouter la classe contactForm qui hérite de la classe
ModelForm
On définit alors notre classe qui va permettre de générer notre formulaire en la faisant
dériver de ModelForm et en lui spécifiant le modèle à inclure "Contact". Il ne nous reste plus
qu’à déclarer une nouvelle variable qui sera une instance de la nouvelle classe créée et à la
passer en tant que donnée à notre template. Pour cela, ajouter la fonction contact dans le
fichier views.py :
Question 6 : Créer les urls correspondantes afin d’accéder et afficher contact.html
Nous affichons ici directement notre objet contact_form et on lui associe une option
d’affichage ’as_p’ qui signifie que le formulaire sera affiché en utilisant la balise ’<p>
Lancer le serveur
Question 8 : nous allons nous intéresser à la création de formulaires sans utiliser de modèle,
directement avec le module forms de Django. Créons maintenant notre formulaire
ContactForm2 dans un nouveau fichier nommé forms.py ajouté au sein du l’application :
Ajouter ainsi les instructions nécessaires (dans le fichier urls.py) pour affecter une url au
fonction contact2. Ensuite, créer une page html contact2.html lié au view contact2
Lancer ainsi le serveur et vous devez avoir même résultat que la méthode précédente avec
les formulaires basées sur les modèles
Modifier la réponse HttResponse pour afficher les détails du contact ajouté dans une autre
page html