Formulaires de modèlesLien vers cette rubrique
La référence de l’API des formulaires de modèles ModelForm. Pour du contenu d’initiation au sujet de leur utilisation, consultez le guide thématique Création de formulaires à partir de modèles.
L’API Meta des formulaires de modèlesLien vers cette rubrique
- class ModelFormOptionsLien vers cette définition
L’API _meta est utilisée pour construire les formulaires reflétant des modèles Django. Elle est accessible par l’attribut _meta` de chaque formulaire de modèle et est une instance de ``django.forms.models.ModelFormOptions.
La structure du formulaire généré peut être adaptée en définissant des options de métadonnées en tant qu’attributs de la classe interne Meta. Par exemple :
from django.forms import ModelForm
from myapp.models import Book
class BookForm(ModelForm):
class Meta:
model = Book
fields = ["title", "author"]
help_texts = {
"title": "The title of the book",
"author": "The author of the book",
}
# ... other attributes
Les attributs obligatoires sont model, et soit fields, soit exclude. Tous les autres attributs Meta sont facultatifs.
Les attributs facultatifs autres que localized_fields et formfield_callback sont composés par un dictionnaire faisant correspondre un nom de champ de modèle à une valeur. Tout champ non défini dans le dictionnaire va utiliser la valeur par défaut de son type.
error_messagesLien vers cette rubrique
- ModelFormOptions.error_messagesLien vers cette définition
Un dictionnaire faisant correspondre un nom de champ de modèle à un dictionnaire de clés de messages d’erreur (
null,blank,invalid,unique, etc.) correspondant à des messages d’erreur personnalisés.Lorsque un champ n’est pas indiqué, Django se rabat d’abord sur les messages d’erreur définis dans l’attribut
django.db.models.Field.error_messagesde ce champ de modèle, puis sur les messages d’erreur par défaut de ce type de champ.
excludeLien vers cette rubrique
- ModelFormOptions.excludeLien vers cette définition
Un tuple ou une liste de noms de champ de
modelà exclure du formulaire.Il est obligatoire de définir
fieldsouexclude. Si aucun des deux n’est défini, une exceptionImproperlyConfiguredsera générée. Si attr:~ModelFormOptions.exclude est défini et quefieldsne l’est pas, tous les champs du modèle sont inclus dans le formulaire, sauf ces champs exclus.
field_classesLien vers cette rubrique
- ModelFormOptions.field_classesLien vers cette définition
A dictionary that maps a model field name to a
Fieldclass, which overrides theform_classused in the model field’sField.formfield()method.Lorsque un champ n’est pas indiqué, Django se rabat sur la classe de champ par défaut du champ de modèle.
fieldsLien vers cette rubrique
- ModelFormOptions.fieldsLien vers cette définition
A tuple or list of
modelfield names to be included in the form. The value'__all__'can be used to specify that all fields should be included.If any field is specified in
exclude, this will not be included in the form despite being specified infields.Either
fieldsorexcludemust be set. If neither are set, anImproperlyConfiguredexception will be raised.
formfield_callbackLien vers cette rubrique
- ModelFormOptions.formfield_callbackLien vers cette définition
Une fonction ou autre objet exécutable acceptant un champ de modèle et renvoyant un objet
django.forms.Field.
help_textsLien vers cette rubrique
- ModelFormOptions.help_textsLien vers cette définition
Un dictionnaire faisant correspondre un nom de champ de modèle à un texte d’aide.
Lorsque un champ n’est pas indiqué, Django se rabat sur la valeur
help_textde ce champ de modèle.
labelsLien vers cette rubrique
- ModelFormOptions.labelsLien vers cette définition
Un dictionnaire faisant correspondre des noms de champs de modèles à une chaîne qui sera l’étiquette du champ de formulaire.
Lorsque un champ n’est pas indiqué, Django se rabat sur la valeur
verbose_namede ce champ de modèle, puis sur le nom d’attribut du champ.
localized_fieldsLien vers cette rubrique
- ModelFormOptions.localized_fieldsLien vers cette définition
A tuple or list of
modelfield names to be localized. The value'__all__'can be used to specify that all fields should be localized.By default, form fields are not localized, see enabling localization of fields for more details.
modelLien vers cette rubrique
- ModelFormOptions.modelLien vers cette définition
Required. The
django.db.models.Modelto be used for theModelForm.
widgetsLien vers cette rubrique
- ModelFormOptions.widgetsLien vers cette définition
A dictionary that maps a model field name to a
django.forms.Widget.When a field is not specified, Django will fall back on the default widget for that particular type of
django.db.models.Field.
Model form factory functionsLien vers cette rubrique
modelform_factoryLien vers cette rubrique
- 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)Lien vers cette définition
Renvoie une classe
ModelFormpour le modèle donné. Le paramètre facultatifformpermet d’indiquer une classe de base pour la construction duModelForm.fieldsest une liste facultative de noms de champs. Quand elle est présente, seuls les champs de cette liste seront inclus dans le formulaire renvoyé.excludeest 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ètrefields.formfield_callbackest un objet exécutable acceptant un champ de modèle et renvoyant un champ de formulaire.widgetsest un dictionnaire faisant correspondre des noms de champs de modèle à des composants de formulaires.localized_fieldsest une liste de noms de champs devant être régionalisés.labelsest un dictionnaire faisant correspondre des noms de champs de modèle à des étiquettes.help_textsest un dictionnaire faisant correspondre des noms de champs de modèle à des textes d’aide.error_messagesest un dictionnaire faisant correspondre des noms de champs de modèle à des dictionnaires de messages d’erreur.field_classesest 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
fieldsouexclude, soit par les attributs de même nom de la classe interne de formulaireMeta. Voir Sélection des champs à utiliser pour plus d’informations. En omettant toute définition de champs à utiliser, cela aboutira à une exceptionImproperlyConfigured.
modelformset_factoryLien vers cette rubrique
- 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, renderer=None, edit_only=False)Lien vers cette définition
Renvoie une classe
FormSetpour la classe de modèle donnée.Les paramètres
model,form,fields,exclude,formfield_callback,widgets,localized_fields,labels,help_texts,error_messagesetfield_classessont tous transmis àmodelform_factory().Les paramètres
formset,extra,can_delete,can_order,max_num,validate_max,min_num,validate_min,absolute_max,can_delete_extraetrenderersont transmis àformset_factory(). Voir Jeux de formulaires pour plus de détails.L’argument
edit_onlypermet d’empêcher la création de nouveaux objets.Voir Formulaires groupés de modèles pour des exemples d’utilisation.
inlineformset_factoryLien vers cette rubrique
- 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, renderer=None, edit_only=False)Lien vers cette définition
Renvoie un
InlineFormSeten utilisantmodelformset_factory()avec les valeurs par défautformset=BaseInlineFormSet,can_delete=Trueetextra=3.Si le modèle possède plus d’une clé étrangère
ForeignKeyversparent_model, vous devez renseigner le paramètrefk_name.Voir Sous-formulaires groupés pour des exemples d’utilisation.