ModelForm API-referens. För introduktionsmaterial om hur man använder en ModelForm, se ämnesguiden Skapa formulär från modeller.
Meta API¶API:et _meta används för att skapa formulär som återspeglar en Django-modell. Det är tillgängligt via attributet _meta i varje modellformulär och är en instans av django.forms.models.ModelFormOptions.
Strukturen på det genererade formuläret kan anpassas genom att definiera metadataalternativ som attribut för en inre Meta-klass. Till exempel:
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
Obligatoriska attribut är model och antingen fields eller exclude. Alla andra Meta-attribut är valfria.
Valfria attribut, förutom localized_fields och formfield_callback, förväntar sig en ordbok som mappar ett modellfältnamn till ett värde. Alla fält som inte definieras i ordboken faller tillbaka till fältets standardvärde.
Ogiltiga fältnamn
Ogiltiga eller uteslutna fältnamn i ett valfritt ordboksattribut har ingen effekt, eftersom fält som inte ingår inte används.
Felmeddelanden¶En ordlista som kopplar ett modellfältnamn till en ordlista med felmeddelandenycklar (null, blank, invalid, unique, etc.) som kopplas till anpassade felmeddelanden.
När ett fält inte anges kommer Django att använda felmeddelandena som definierats i det modellfältets django.db.models.Field.error_messages och slutligen standardfelmeddelandena för den fälttypen.
exclude¶En tupel eller lista med model fältnamn som ska uteslutas från formuläret.
Antingen fields eller exclude måste vara inställt. Om inget av dessa är inställt kommer ett ImproperlyConfigured-undantag att genereras. Om exclude är inställt och fields inte är inställt, inkluderas alla modellfält, förutom de som anges i exclude, i formuläret.
field_classes¶En ordlista som mappar ett modellfältnamn till en Field-klass, som åsidosätter form_class som används i modellfältets Field.formfield()-metod.
När ett fält inte anges kommer Django att använda modellfältets standardfältklass.
fält¶En tupel eller lista med model fältnamn som ska inkluderas i formuläret. Värdet ’__all__’ kan användas för att ange att alla fält ska inkluderas.
Om något fält anges i exclude kommer detta inte att inkluderas i formuläret trots att det anges i fields.
Antingen fields eller exclude måste anges. Om ingen av dem anges kommer ett ImproperlyConfigured-undantag att genereras.
formfield_callback¶En funktion eller anropbar som tar ett modellfält och returnerar ett django.forms.Field-objekt.
help_texts¶labels¶En ordlista som mappar modellfältnamn till en etikettsträng.
När ett fält inte anges kommer Django att använda modellfältets verbose_name och sedan fältets attributnamn.
localized_fields¶En tupel eller lista med model fältnamn som ska lokaliseras. Värdet ’__all__’ kan användas för att ange att alla fält ska lokaliseras.
Som standard är formulärfält inte lokaliserade. Se aktivera lokalisering av fält för mer information.
modell¶Obligatoriskt. Klassen django.db.models.Model som ska användas för ModelForm.
widgets¶En ordlista som mappar ett modellfältnamn till en django.forms.Widget.
När ett fält inte anges kommer Django att använda standardwidgetaren för den specifika typen av django.db.models.Field.
modellform_fabrik¶Returnerar en ModelForm-klass för den angivna modellen. Du kan valfritt skicka ett form-argument som ska användas som utgångspunkt för att konstruera ModelForm.
fields är en valfri lista med fältnamn. Om den anges kommer endast de namngivna fälten att ingå i de returnerade fälten.
exclude är en valfri lista med fältnamn. Om den anges kommer de angivna fälten att uteslutas från de returnerade fälten, även om de finns listade i argumentet fields.
formfield_callback är en callable som tar ett modellfält och returnerar ett formulärfält.
widgets är en ordbok med namn på modellfält som mappas till en widget.
localized_fields är en lista med namn på fält som ska lokaliseras.
labels är en ordbok med namn på modellfält som mappas till en etikett.
help_texts är en ordbok med namn på modellfält som mappats till en hjälptext.
error_messages är en ordbok med namn på modellfält som mappas till en ordbok med felmeddelanden.
field_classes är en ordbok med namn på modellfält som mappas till en formulärfältklass.
Se ModelForm fabriksfunktion för exempel på användning.
Du måste ange listan med fält explicit, antingen via nyckelordsargumenten fields eller exclude, eller motsvarande attribut på formulärets inre Meta-klass. Se Välja de fält som ska användas för mer information. Om du utelämnar någon definition av de fält som ska användas kommer det att resultera i ett ImproperlyConfigured undantag.
modellformset_factory¶Returnerar en FormSet-klass för den angivna model-klassen.
Argumenten model, form, fields, exclude, formfield_callback, widgets, localized_fields, labels, help_texts, error_messages och field_classes skickas alla till modelform_factory().
Argumenten formset, extra, can_delete, can_order, max_num, validate_max, min_num, validate_min, absolute_max, can_delete_extra och renderer skickas till formset_factory(). Se formsets för mer information.
Argumentet edit_only gör det möjligt att förhindra att nya objekt skapas.
Se Modellformsatser för exempel på användning.
inlineformset_factory¶Returnerar ett InlineFormSet med hjälp av modelformset_factory() med standardvärdena formset=BaseInlineFormSet, can_delete=True och extra=3.
Om din modell har mer än en ForeignKey till parent_model, måste du ange ett fk_name.
Se Inline-formulär för exempel på användning.
dec. 03, 2025