# Documentation Django 3.1.9.dev

# Classes mixins d’édition

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

- `django.views.generic.edit.FormMixin`
- `django.views.generic.edit.ModelFormMixin`
- `django.views.generic.edit.ProcessFormView`
- `django.views.generic.edit.DeletionMixin`

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

  - `django.views.generic.base.ContextMixin`

  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.

  `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)

    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.

  Classes mixins

  - `django.views.generic.edit.FormMixin`
  - `django.views.generic.detail.SingleObjectMixin`

  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.

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

  `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`(form)

    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

  - `django.views.generic.base.View`

  Méthodes et attributs

  `get`(request, *args, **kwargs)

    Produit une réponse en utilisant le contexte créé avec `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.

  `delete`(request, *args, **kwargs)

    Récupère l’objet cible et appelle sa méthode `delete()`, puis redirige vers l’URL de succès.

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