# Documentation Django 3.1.9.dev

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

## `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` 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 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 pour plus d’informations. En omettant toute définition de champs à utiliser, cela aboutira à une exception `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()`.

  Les paramètres `formset`, `extra`, `can_delete`, `can_order`, `max_num`, `validate_max`, `min_num` et `validate_min` sont transmis à `formset_factory()`. Voir Jeux de formulaires pour plus de détails.

  Voir Formulaires groupés de modèles 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()` avec les valeurs par défaut `formset=``BaseInlineFormSet`, `can_delete=True` et `extra=3`.

  Si le modèle possède plus d’une clé étrangère `ForeignKey` vers `parent_model`, vous devez renseigner le paramètre `fk_name`.

  Voir Sous-formulaires groupés pour des exemples d’utilisation.