---
title: "Fonctions de formulaires de modèles"
version: 2.0
locale: fr
source: https://docs.djangoproject.com/fr/2.0/ref/forms/models/
canonical: https://djangodocs.dev/fr/2.0/ref/forms/models/
---
# Fonctions de formulaires de modèles

La référence de l’API des formulaires de modèles. Pour du contenu d’initiation au sujet des formulaires de modèles, consultez le guide thématique [Création de formulaires à partir de modèles](/fr/2.0/topics/forms/modelforms/).

## `modelform_factory`

#### `modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None, localized_fields=None, labels=None, help_texts=None, error_messages=None, field_classes=None)`

Renvoie une classe [`ModelForm`](/fr/2.0/topics/forms/modelforms/#django.forms.ModelForm) pour le modèle donné. Le paramètre facultatif `form` permet d’indiquer une classe de base pour la construction du `ModelForm`.

`fields` est une liste facultative de noms de champs. Quand elle est présente, seuls les champs de cette liste seront inclus dans le formulaire renvoyé.

`exclude` est une liste facultative de noms de champs. Quand elle est présente, les champs de cette liste sont exclus du formulaire renvoyé, même s’ils figurent dans le paramètre `fields`.

`formfield_callback` est un objet exécutable acceptant un champ de modèle et renvoyant un champ de formulaire.

`widgets` est un dictionnaire faisant correspondre des noms de champs de modèle à des composants de formulaires.

`localized_fields` est une liste de noms de champs devant être régionalisés.

`labels` est un dictionnaire faisant correspondre des noms de champs de modèle à des étiquettes.

`help_texts` est un dictionnaire faisant correspondre des noms de champs de modèle à des textes d’aide.

`error_messages` est un dictionnaire faisant correspondre des noms de champs de modèle à des dictionnaires de messages d’erreur.

`field_classes` est un dictionnaire faisant correspondre des noms de champs de modèle à une classe de champ de formulaire.

Voir [Fonction de fabrique de ModelForm](/fr/2.0/topics/forms/modelforms/#modelforms-factory) pour des exemples d’utilisation.

Vous devez définir explicitement la liste des champs, soit par les paramètres nommés `fields` ou `exclude`, soit par les attributs de même nom de la classe interne de formulaire `Meta`. Voir [Sélection des champs à utiliser](/fr/2.0/topics/forms/modelforms/#modelforms-selecting-fields) pour plus d’informations. En omettant toute définition de champs à utiliser, cela aboutira à une exception [`ImproperlyConfigured`](/fr/2.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured).

## `modelformset_factory`

#### `modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None)`

Renvoie une classe `FormSet` pour la classe de modèle donnée.

Les paramètres `model`, `form`, `fields`, `exclude`, `formfield_callback`, `widgets`, `localized_fields`, `labels`, `help_texts`, `error_messages` et `field_classes` sont tous transmis à [`modelform_factory()`](#django.forms.models.modelform_factory).

Les paramètres `formset`, `extra`, `max_num`, `can_order`, `can_delete` et `validate_max` sont transmis à [`formset_factory()`](/fr/2.0/ref/forms/formsets/#django.forms.formsets.formset_factory). Voir [Jeux de formulaires](/fr/2.0/topics/forms/formsets/) pour plus de détails.

Voir [Formulaires groupés de modèles](/fr/2.0/topics/forms/modelforms/#model-formsets) pour des exemples d’utilisation.

## `inlineformset_factory`

#### `inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None)`

Renvoie un `InlineFormSet` en utilisant [`modelformset_factory()`](#django.forms.models.modelformset_factory) avec les valeurs par défaut `formset=`[`BaseInlineFormSet`](/fr/2.0/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet), `can_delete=True` et `extra=3`.

Si le modèle possède plus d’une clé étrangère [`ForeignKey`](/fr/2.0/ref/models/fields/#django.db.models.ForeignKey) vers `parent_model`, vous devez renseigner le paramètre `fk_name`.

Voir [Sous-formulaires groupés](/fr/2.0/topics/forms/modelforms/#inline-formsets) pour des exemples d’utilisation.
