{"title":"Model Form Functions","version":"1.9","locale":"pt-br","docname":"ref/forms/models","url":"/pt-br/1.9/ref/forms/models/","canonical":"https://djangodocs.dev/pt-br/1.9/ref/forms/models/","summary":"Model Form API reference. For introductory material about model forms, see the Creating forms from models topic guide. modelform_factory Link para este cabeçalho #…","html":"<h1>Model Form Functions<a class=\"heading-anchor\" href=\"#model-form-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Model Form API reference. For introductory material about model forms, see the\n<a class=\"reference internal\" href=\"/pt-br/1.9/topics/forms/modelforms/\"><span class=\"doc\">Creating forms from models</span></a> topic guide.</p>\n<section id=\"modelform-factory\">\n<span id=\"module-django.forms.models\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">modelform_factory</span></code><a class=\"heading-anchor\" href=\"#modelform-factory\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\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 para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference internal\" href=\"/pt-br/1.9/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 localized.</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=\"/pt-br/1.9/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 arguments\n<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 form’s\ninner <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class. See <a class=\"reference internal\" href=\"/pt-br/1.9/topics/forms/modelforms/#modelforms-selecting-fields\"><span class=\"std std-ref\">Selecting the fields to use</span></a> for more\ninformation. Omitting any definition of the fields to use will result in\nan <a class=\"reference internal\" href=\"/pt-br/1.9/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<aside class=\"version-note version-changed\" data-version=\"1.8\">\n<p class=\"version-note-title\">Changed in Django 1.8</p><p>Previously, omitting the list of fields was allowed and resulted in\na form with all fields of the model.</p>\n</aside>\n<aside class=\"version-note version-added\" data-version=\"1.9\">\n<p class=\"version-note-title\">New in Django 1.9</p><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code> keyword argument was added.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"modelformset-factory\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">modelformset_factory</span></code><a class=\"heading-anchor\" href=\"#modelformset-factory\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\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><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.models.modelformset_factory\"><span class=\"visually-hidden\">Link para esta definição</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\">max_num</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">can_order</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">can_delete</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_max</span></code> are passed through to\n<a class=\"reference internal\" href=\"/pt-br/1.9/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 <a class=\"reference internal\" href=\"/pt-br/1.9/topics/forms/formsets/\"><span class=\"doc\">formsets</span></a> for details.</p>\n<p>Veja <a class=\"reference internal\" href=\"/pt-br/1.9/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">Model formsets</span></a> para um exemplo de uso.</p>\n<aside class=\"version-note version-added\" data-version=\"1.9\">\n<p class=\"version-note-title\">New in Django 1.9</p><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code> keyword argument was added.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"inlineformset-factory\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">inlineformset_factory</span></code><a class=\"heading-anchor\" href=\"#inlineformset-factory\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\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><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.models.inlineformset_factory\"><span class=\"visually-hidden\">Link para esta definição</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=\"/pt-br/1.9/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=\"/pt-br/1.9/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>Vjea <a class=\"reference internal\" href=\"/pt-br/1.9/topics/forms/modelforms/#inline-formsets\"><span class=\"std std-ref\">Inline formsets</span></a> para exemplo de uso.</p>\n<aside class=\"version-note version-added\" data-version=\"1.9\">\n<p class=\"version-note-title\">New in Django 1.9</p><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">field_classes</span></code> keyword argument was added.</p>\n</aside>\n</dd></dl>\n\n</section>","rootId":"model-form-functions","toc":[{"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":"Referência da API","url":"/pt-br/1.9/ref/"},{"docname":"ref/forms/index","title":"Formulários","url":"/pt-br/1.9/ref/forms/"}],"prev":{"docname":"ref/forms/fields","title":"Form fields","url":"/pt-br/1.9/ref/forms/fields/"},"next":{"docname":"ref/forms/formsets","title":"Formset Functions","url":"/pt-br/1.9/ref/forms/formsets/"},"formats":{"html":"/pt-br/1.9/ref/forms/models/","markdown":"/pt-br/1.9/ref/forms/models.md","json":"/pt-br/1.9/ref/forms/models.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/ref/forms/models.txt","official":"https://docs.djangoproject.com/pt-br/1.9/ref/forms/models/","inVersions":["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"],"inLocales":["en","fr","ja","id","pt-br","es"]}