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, absolute_max=None, can_delete_extra=True)

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, validate_min, absolute_max et can_delete_extra 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.

Changed in Django 3.2:

Les paramètres absolute_max et can_delete_extra ont été ajoutés.

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, absolute_max=None, can_delete_extra=True)

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.

Changed in Django 3.2:

Les paramètres absolute_max et can_delete_extra ont été ajoutés.

Back to Top