{"title":"Model forms","version":"dev","locale":"en","docname":"ref/forms/models","url":"/en/dev/ref/forms/models/","canonical":"https://djangodocs.dev/en/dev/ref/forms/models/","summary":"ModelForm API reference. For introductory material about using a ModelForm , see the Creating forms from models topic guide. Model form Meta API Link to this…","html":"<span id=\"model-forms\"></span><h1>Model forms<a class=\"heading-anchor\" href=\"#module-django.forms.models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> API reference. For introductory material about using a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>, see the <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/\"><span class=\"doc\">Creating forms from models</span></a> topic guide.</p>\n<section id=\"model-form-meta-api\">\n<h2>Model form <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> API<a class=\"heading-anchor\" href=\"#model-form-meta-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ModelFormOptions</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">_meta</span></code> API is used to build forms that reflect a Django model. It is\naccessible through the <code class=\"docutils literal notranslate\"><span class=\"pre\">_meta</span></code> attribute of each model form, and is a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.models.ModelFormOptions</span></code> instance.</p>\n<p>The structure of the generated form can be customized by defining metadata\noptions as attributes of an inner <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ModelForm</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Book</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookForm</span><span class=\"p\">(</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Book</span>\n        <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">]</span>\n        <span class=\"n\">help_texts</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;The title of the book&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;The author of the book&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">}</span>\n        <span class=\"c1\"># ... other attributes</span>\n</code></pre></div>\n<p>Required attributes are <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.model\" title=\"django.forms.ModelFormOptions.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a>, and either\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.fields\" title=\"django.forms.ModelFormOptions.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> or <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a>. All\nother <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> attributes are optional.</p>\n<p>Optional attributes, other than <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.localized_fields\" title=\"django.forms.ModelFormOptions.localized_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">localized_fields</span></code></a> and\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.formfield_callback\" title=\"django.forms.ModelFormOptions.formfield_callback\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">formfield_callback</span></code></a>, expect a dictionary that maps a\nmodel field name to a value. Any field that is not defined in the dictionary\nfalls back to the field’s default value.</p>\n<aside class=\"admonition-invalid-field-names admonition\">\n<p class=\"admonition-title\">Invalid field names</p>\n<p>Invalid or excluded field names in an optional dictionary attribute have no\neffect, since fields that are not included are not accessed.</p>\n</aside>\n<aside class=\"admonition-invalid-meta-class-attributes admonition\">\n<p class=\"admonition-title\">Invalid Meta class attributes</p>\n<p>You may define any attribute on a <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class. Typos or incorrect\nattribute names do not raise an error.</p>\n</aside>\n<section id=\"error-messages\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">error_messages</span></code><a class=\"heading-anchor\" href=\"#error-messages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.error_messages\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">error_messages</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.error_messages\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary that maps a model field name to a dictionary of error message\nkeys (<code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">blank</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">unique</span></code>, etc.) mapped to custom\nerror messages.</p>\n<p>When a field is not specified, Django will fall back on the error messages\ndefined in that model field’s <a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.Field.error_messages\" title=\"django.db.models.Field.error_messages\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">django.db.models.Field.error_messages</span></code></a>\nand then finally on the default error messages for that field type.</p>\n</dd></dl>\n\n</section>\n<section id=\"exclude\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code><a class=\"heading-anchor\" href=\"#exclude\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.exclude\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">exclude</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.exclude\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A tuple or list of <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.model\" title=\"django.forms.ModelFormOptions.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a> field names to be\nexcluded from the form.</p>\n<p>Either <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.fields\" title=\"django.forms.ModelFormOptions.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> or\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a> must be set. If neither are set, an\n<a class=\"reference internal\" href=\"/en/dev/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code></a> exception will be\nraised. If <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a> is set and\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.fields\" title=\"django.forms.ModelFormOptions.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> is unset, all model fields, except for\nthose specified in <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a>, are included in the\nform.</p>\n</dd></dl>\n\n</section>\n<section id=\"field-classes\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code><a class=\"heading-anchor\" href=\"#field-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.field_classes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">field_classes</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.field_classes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary that maps a model field name to a <a class=\"reference internal\" href=\"/en/dev/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>\nclass, which overrides the <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></code> used in the model field’s\n<a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.Field.formfield\" title=\"django.db.models.Field.formfield\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.formfield()</span></code></a> method.</p>\n<p>When a field is not specified, Django will fall back on the model field’s\n<a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#model-form-field-types\"><span class=\"std std-ref\">default field class</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"fields\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code><a class=\"heading-anchor\" href=\"#fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A tuple or list of <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.model\" title=\"django.forms.ModelFormOptions.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a> field names to be\nincluded in the form. The value <code class=\"docutils literal notranslate\"><span class=\"pre\">'__all__'</span></code> can be used to specify that\nall fields should be included.</p>\n<p>If any field is specified in <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a>, this will\nnot be included in the form despite being specified in\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.fields\" title=\"django.forms.ModelFormOptions.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a>.</p>\n<p>Either <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.fields\" title=\"django.forms.ModelFormOptions.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> or\n<a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.exclude\" title=\"django.forms.ModelFormOptions.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a> must be set. If neither are set, an\n<a class=\"reference internal\" href=\"/en/dev/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code></a> exception will be\nraised.</p>\n</dd></dl>\n\n</section>\n<section id=\"formfield-callback\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_callback</span></code><a class=\"heading-anchor\" href=\"#formfield-callback\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.formfield_callback\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_callback</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.formfield_callback\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A function or callable that takes a model field and returns a\n<a class=\"reference internal\" href=\"/en/dev/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.Field</span></code></a> object.</p>\n</dd></dl>\n\n</section>\n<section id=\"help-texts\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">help_texts</span></code><a class=\"heading-anchor\" href=\"#help-texts\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.help_texts\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">help_texts</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.help_texts\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary that maps a model field name to a help text string.</p>\n<p>When a field is not specified, Django will fall back on that model field’s\n<a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.Field.help_text\" title=\"django.db.models.Field.help_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">help_text</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"labels\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">labels</span></code><a class=\"heading-anchor\" href=\"#labels\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.labels\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">labels</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.labels\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary that maps a model field names to a label string.</p>\n<p>When a field is not specified, Django will fall back on that model field’s\n<a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.Field.verbose_name\" title=\"django.db.models.Field.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> and then the field’s attribute\nname.</p>\n</dd></dl>\n\n</section>\n<section id=\"localized-fields\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">localized_fields</span></code><a class=\"heading-anchor\" href=\"#localized-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.localized_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">localized_fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.localized_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A tuple or list of <a class=\"reference internal\" href=\"#django.forms.ModelFormOptions.model\" title=\"django.forms.ModelFormOptions.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a> field names to be\nlocalized. The value <code class=\"docutils literal notranslate\"><span class=\"pre\">'__all__'</span></code> can be used to specify that all fields\nshould be localized.</p>\n<p>By default, form fields are not localized, see\n<a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#modelforms-enabling-localization-of-fields\"><span class=\"std std-ref\">enabling localization of fields</span></a> for more details.</p>\n</dd></dl>\n\n</section>\n<section id=\"model\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code><a class=\"heading-anchor\" href=\"#model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">model</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Required. The <a class=\"reference internal\" href=\"/en/dev/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.Model</span></code></a> to be used for the\n<a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"widgets\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">widgets</span></code><a class=\"heading-anchor\" href=\"#widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelFormOptions.widgets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelFormOptions.</span></span><span class=\"sig-name descname\"><span class=\"pre\">widgets</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelFormOptions.widgets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary that maps a model field name to a\n<a class=\"reference internal\" href=\"/en/dev/ref/forms/widgets/#django.forms.Widget\" title=\"django.forms.Widget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.Widget</span></code></a>.</p>\n<p>When a field is not specified, Django will fall back on the default widget\nfor that particular type of <a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.Field</span></code></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"model-form-factory-functions\">\n<h2>Model form factory functions<a class=\"heading-anchor\" href=\"#model-form-factory-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"modelform-factory\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">modelform_factory</span></code><a class=\"heading-anchor\" href=\"#modelform-factory\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.forms.models.modelform_factory\">\n<span class=\"sig-name descname\"><span class=\"pre\">modelform_factory</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">ModelForm</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formfield_callback</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widgets</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">localized_fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">labels</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">help_texts</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error_messages</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_classes</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.models.modelform_factory\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> class for the given <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>.\nYou can optionally pass a <code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code> argument to use as a starting point for\nconstructing the <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> is an optional list of field names. If provided, only the named\nfields will be included in the returned fields.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> is an optional list of field names. If provided, the named\nfields will be excluded from the returned fields, even if they are listed\nin the <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> argument.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_callback</span></code> is a callable that takes a model field and returns\na form field.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">widgets</span></code> is a dictionary of model field names mapped to a widget.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">localized_fields</span></code> is a list of names of fields which should be\nlocalized.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">labels</span></code> is a dictionary of model field names mapped to a label.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">help_texts</span></code> is a dictionary of model field names mapped to a help text.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">error_messages</span></code> is a dictionary of model field names mapped to a\ndictionary of error messages.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code> is a dictionary of model field names mapped to a form\nfield class.</p>\n<p>See <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#modelforms-factory\"><span class=\"std std-ref\">ModelForm factory function</span></a> for example usage.</p>\n<p>You must provide the list of fields explicitly, either via keyword\narguments <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code>, or the corresponding attributes on the\nform’s inner <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class. See <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#modelforms-selecting-fields\"><span class=\"std std-ref\">Selecting the fields to use</span></a> for\nmore information. Omitting any definition of the fields to use will result\nin an <a class=\"reference internal\" href=\"/en/dev/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code></a> exception.</p>\n</dd></dl>\n\n</section>\n<section id=\"modelformset-factory\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">modelformset_factory</span></code><a class=\"heading-anchor\" href=\"#modelformset-factory\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.forms.models.modelformset_factory\">\n<span class=\"sig-name descname\"><span class=\"pre\">modelformset_factory</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">ModelForm</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formfield_callback</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">BaseModelFormSet</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_delete</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_order</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_num</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widgets</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_max</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">localized_fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">labels</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">help_texts</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error_messages</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">min_num</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_min</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_classes</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">absolute_max</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_delete_extra</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">edit_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.models.modelformset_factory\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <code class=\"docutils literal notranslate\"><span class=\"pre\">FormSet</span></code> class for the given <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code> class.</p>\n<p>Arguments <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_callback</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">widgets</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">localized_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">labels</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">help_texts</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">error_messages</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code> are all passed\nthrough to <a class=\"reference internal\" href=\"#django.forms.models.modelform_factory\" title=\"django.forms.models.modelform_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelform_factory()</span></code></a>.</p>\n<p>Arguments <code class=\"docutils literal notranslate\"><span class=\"pre\">formset</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">extra</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">can_delete</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">can_order</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">max_num</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_max</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_num</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_min</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">absolute_max</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">can_delete_extra</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> are passed\nthrough to <a class=\"reference internal\" href=\"/en/dev/ref/forms/formsets/#django.forms.formsets.formset_factory\" title=\"django.forms.formsets.formset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">formset_factory()</span></code></a>. See\n<a class=\"reference internal\" href=\"/en/dev/topics/forms/formsets/\"><span class=\"doc\">formsets</span></a> for details.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">edit_only</span></code> argument allows <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#model-formsets-edit-only\"><span class=\"std std-ref\">preventing new objects creation</span></a>.</p>\n<p>See <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">Model formsets</span></a> for example usage.</p>\n</dd></dl>\n\n</section>\n<section id=\"inlineformset-factory\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">inlineformset_factory</span></code><a class=\"heading-anchor\" href=\"#inlineformset-factory\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.forms.models.inlineformset_factory\">\n<span class=\"sig-name descname\"><span class=\"pre\">inlineformset_factory</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">parent_model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">ModelForm</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">BaseInlineFormSet</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fk_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">3</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_order</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_delete</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_num</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formfield_callback</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widgets</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_max</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">localized_fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">labels</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">help_texts</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error_messages</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">min_num</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_min</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_classes</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">absolute_max</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">can_delete_extra</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">edit_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.models.inlineformset_factory\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns an <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineFormSet</span></code> using <a class=\"reference internal\" href=\"#django.forms.models.modelformset_factory\" title=\"django.forms.models.modelformset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelformset_factory()</span></code></a> with\ndefaults of <code class=\"docutils literal notranslate\"><span class=\"pre\">formset=</span></code><a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet\" title=\"django.forms.models.BaseInlineFormSet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseInlineFormSet</span></code></a>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">can_delete=True</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">extra=3</span></code>.</p>\n<p>If your model has more than one <a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> to\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">parent_model</span></code>, you must specify a <code class=\"docutils literal notranslate\"><span class=\"pre\">fk_name</span></code>.</p>\n<p>See <a class=\"reference internal\" href=\"/en/dev/topics/forms/modelforms/#inline-formsets\"><span class=\"std std-ref\">Inline formsets</span></a> for example usage.</p>\n</dd></dl>\n\n</section>\n</section>","rootId":"module-django.forms.models","toc":[{"title":"Model form Meta API","anchor":"model-form-meta-api","children":[{"title":"error_messages","anchor":"error-messages","children":[]},{"title":"exclude","anchor":"exclude","children":[]},{"title":"field_classes","anchor":"field-classes","children":[]},{"title":"fields","anchor":"fields","children":[]},{"title":"formfield_callback","anchor":"formfield-callback","children":[]},{"title":"help_texts","anchor":"help-texts","children":[]},{"title":"labels","anchor":"labels","children":[]},{"title":"localized_fields","anchor":"localized-fields","children":[]},{"title":"model","anchor":"model","children":[]},{"title":"widgets","anchor":"widgets","children":[]}]},{"title":"Model form factory functions","anchor":"model-form-factory-functions","children":[{"title":"modelform_factory","anchor":"modelform-factory","children":[]},{"title":"modelformset_factory","anchor":"modelformset-factory","children":[]},{"title":"inlineformset_factory","anchor":"inlineformset-factory","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API Reference","url":"/en/dev/ref/"},{"docname":"ref/forms/index","title":"Forms","url":"/en/dev/ref/forms/"}],"prev":{"docname":"ref/forms/fields","title":"Form fields","url":"/en/dev/ref/forms/fields/"},"next":{"docname":"ref/forms/formsets","title":"Formset Functions","url":"/en/dev/ref/forms/formsets/"},"formats":{"html":"/en/dev/ref/forms/models/","markdown":"/en/dev/ref/forms/models.md","json":"/en/dev/ref/forms/models.json"},"source":"https://github.com/django/django/blob/main/docs/ref/forms/models.txt","official":"https://docs.djangoproject.com/en/dev/ref/forms/models/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9","1.8"],"inLocales":["en"]}