Classes mixins d’édition

Les classes mixins suivantes sont utilisées pour construire les vues d’édition de Django :

Note

Des exemples de la manière dont ces classes sont combinées pour former des vues d’édition se trouvent dans la documentation sur les Vues génériques d’édition.

FormMixin

class django.views.generic.edit.FormMixin

Une classe mixin fournissant des outils pour la création et l’affichage de formulaires.

Classes mixins

Méthodes et attributs

initial

Un dictionnaire contenant les données initiales du formulaire.

form_class

La classe de formulaire dont il faut créer une instance.

success_url

L’URL vers laquelle rediriger la réponse lorsque le formulaire est traité avec succès.

prefix

Le préfixe prefix du formulaire généré.

get_initial()

Récupère les données initiales pour le formulaire. Par défaut, cette méthode renvoie une copie de initial.

get_form_class()

Récupère la classe de formulaire dont il faut créer une instance. Par défaut, form_class.

get_form(form_class=None)

Crée une instance de form_class en utilisant get_form_kwargs(). Si form_class n’est pas fourni, c’est get_form_class() qui sera utilisée.

Changed in Django 1.8:

Le paramètre form_class n’est plus obligatoire.

get_form_kwargs()

Construit les paramètres nommés requis pour créer une instance de formulaire.

Le paramètre initial est défini à get_initial(). Si la requête est de type POST ou PUT, les données de la requête (request.POST et request.FILES) seront également fournies.

get_prefix()

Détermine le préfixe prefix du formulaire généré. Renvoie prefix par défaut.

get_success_url()

Détermine l’URL vers laquelle rediriger lorsque le formulaire est validé avec succès. Renvoie success_url par défaut.

form_valid(form)

Redirige vers get_success_url().

form_invalid(form)

Produit la réponse, en plaçant le formulaire non valide dans le contexte.

get_context_data(**kwargs)
New in Django 1.9.

Appelle get_form() et ajoute le résultat aux données de contexte sous le nom form.

ModelFormMixin

class django.views.generic.edit.ModelFormMixin

Une classe mixin de formulaire qui fonctionne avec les ModelForms, plutôt qu’avec des formulaires autonomes.

Comme il s’agit d’une sous-classe de SingleObjectMixin, les instances de cette classe mixin ont accès aux attributs model et queryset décrivant le type d’objet que le formulaire ModelForm manipule.

Si vous définissez à la fois les attributs fields et form_class, une exception ImproperlyConfigured est générée.

Changed in Django 1.8:

Précédemment, si fields et form_class étaient tous deux définis, fields était silencieusement ignoré.

Classes mixins

Méthodes et attributs

model

Une classe de modèle. Peut être fournie explicitement, sinon elle sera déterminée en examinant self.object ou queryset.

fields

Une liste de noms de champs. Cet attribut est interprété de la même manière que l’attribut Meta.fields de la classe ModelForm.

Il s’agit d’un attribut obligatoire si vous générez automatiquement la classe de formulaire (par ex. en utilisant model). En l’absence de cet attribut, une exception ImproperlyConfigured est générée.

Changed in Django 1.8:

L’omission de cet attribut était précédemment admise et aboutissait à un formulaire contenant tous les champs du modèle.

success_url

L’URL vers laquelle rediriger la réponse lorsque le formulaire est traité avec succès.

success_url peut contenir des chaînes de format de type dictionnaire, qui seront substituées en utilisant les attributs de champs de l’objet. Par exemple, vous pourriez utiliser success_url="/polls/{slug}/" pour rediriger vers une URL composée à partir du champ slug d’un modèle.

Changed in Django 1.8:

La prise en charge de la nouvelle syntaxe de Python de mise en forme par accolades a été ajoutée. L’ancienne syntaxe par substitution de type %(slug)s est maintenant obsolète et sera supprimée dans Django 1.10.

get_form_class()

Récupère la classe de formulaire dont il faudra créer une instance. Si form_class est définie, c’est cette classe qui sera utilisée. Sinon, une instance de formulaire ModelForm sera créée en se basant sur le modèle associé au contenu de queryset ou de model, en fonction de l’attribut qui est défini.

get_form_kwargs()

Ajoute l’instance actuelle (self.object) au contenu standard de get_form_kwargs().

get_success_url()

Détermine l’URL vers laquelle rediriger lorsque le formulaire est validé avec succès. Renvoie django.views.generic.edit.ModelFormMixin.success_url s’il est défini ; sinon, essaie d’employer la valeur get_absolute_url() de l’objet.

form_valid(form)

Enregistre l’instance de formulaire, définit l’objet en cours de la vue et redirige vers get_success_url().

form_invalid()

Produit la réponse, en plaçant le formulaire non valide dans le contexte.

ProcessFormView

class django.views.generic.edit.ProcessFormView

Une classe mixin qui fournit la gestion de flux habituelle des requêtes HTTP GET et POST.

Note

Cette classe est nommée ProcessFormView et hérite directement de django.views.generic.base.View, mais elle ne peut pas être utilisée de manière indépendante, ce qui fait qu’elle est plutôt considérée comme une classe mixin.

Étend

Méthodes et attributs

get(request, *args, **kwargs)

Produit une réponse en utilisant le contexte créé avec get_context_data().

Changed in Django 1.9:

La construction du formulaire a été déplacée de cette méthode vers get_context_data().

post(request, *args, **kwargs)

Construit un formulaire, vérifie la validité du formulaire et le traite en conséquence.

put(*args, **kwargs)

L’action PUT est également gérée, mais ne fait que transmettre tous les paramètres à post().

DeletionMixin

class django.views.generic.edit.DeletionMixin

Permet la gestion de l’action http DELETE.

Méthodes et attributs

success_url

L’URL vers laquelle rediriger lorsque l’objet concerné a été supprimé avec succès.

success_url peut contenir des chaînes de format de type dictionnaire, qui seront substituées en utilisant les attributs de champs de l’objet. Par exemple, vous pourriez utiliser success_url="/parent/{parent_id}/" pour rediriger vers une URL composée à partir du champ parent_id d’un modèle.

Changed in Django 1.8:

La prise en charge de la nouvelle syntaxe de Python de mise en forme par accolades a été ajoutée. L’ancienne syntaxe par substitution de type %(slug)s est maintenant obsolète et sera supprimée dans Django 1.10.

get_success_url()

Renvoie l’URL vers laquelle rediriger lorsque l’objet concerné a été supprimé avec succès. Renvoie success_url par défaut.

Back to Top