Les vues génériques basées
sur des classes et les formulaires
Nous avons étudié les vues
génériques au chapitre Les requêtes HTTP,
les URL et les vues. Depuis la version 1.3 de Django, elles sont
basées sur des classes. Ces classes sont regroupées
par fonctionnalités. Pour traiter les formulaires, on trouve
dans django.views.generic.edit les
vues suivantes : FormView, CreateView, UpdateView et DeleteView.
Hiérarchie partielle des vues génériques relatives aux formulaires :
Pour avoir des explications sur le principe
des vues basées sur des classes, reportez-vous au chapitre
Les requêtes HTTP, les URL et les vues.
Lors du traitement d’un formulaire, nous allons
devoir réaliser les étapes suivantes :
-
Traiter la requête
GET initiale et fabriquer un formulaire, avec ou sans données
initiales.
-
Traiter la requête POST
et, en cas d’erreur, réaffirmer le formulaire.
-
Traiter la requête POST
correcte, traiter les données et les enregistrer si nécessaire
puis rediriger la réponse.
On peut représenter cela avec une
vue basée sur une fonction par le pseudo-code suivant :
form .forms import MonFormulaire
def ma_vue_avec_mon_formulaire(request,*args, **kwargs):
if request.method == "POST":
# Créer un formulaire à partir des données du POST
forms ...