Sommaire

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 :

images/11RI08b.PNG

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 ...