{"title":"Form fields","version":"6.0","locale":"pt-br","docname":"ref/forms/fields","url":"/pt-br/6.0/ref/forms/fields/","canonical":"https://djangodocs.dev/pt-br/6.0/ref/forms/fields/","summary":"class Field Link para esta definição # When you create a Form class, the most important part is defining the fields of the form. Each field has custom validation…","html":"<span id=\"form-fields\"></span><h1>Form fields<a class=\"heading-anchor\" href=\"#module-django.forms.fields\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h1>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field\">\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\">Field</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>When you create a <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> class, the most important part is defining the\nfields of the form. Each field has custom validation logic, along with a few\nother hooks.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Field.clean\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Although the primary way you’ll use <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes is in <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> classes,\nyou can also instantiate them and use them directly to get a better idea of\nhow they work. Each <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> instance has a <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> method, which takes\na single argument and either raises a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.ValidationError</span></code> exception or returns the clean\nvalue:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">EmailField</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo@example.com&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Enter a valid email address.&#39;]</span>\n</code></pre></div>\n<section id=\"core-field-arguments\">\n<span id=\"id1\"></span><h2>Core field arguments<a class=\"heading-anchor\" href=\"#core-field-arguments\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Each <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> class constructor takes at least these arguments. Some\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes take additional, field-specific arguments, but the following\nshould <em>always</em> be accepted:</p>\n<section id=\"required\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code><a class=\"heading-anchor\" href=\"#required\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.required\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">required</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.required\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>By default, each <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> class assumes the value is required, so if you pass\nan empty value – either <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> or the empty string (<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&quot;</span></code>) – then\n<code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> will raise a <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> exception:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;0&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;True&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;False&#39;</span>\n</code></pre></div>\n<p>To specify that a field is <em>not</em> required, pass <code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</span></code> to the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> constructor:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;0&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;True&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;False&#39;</span>\n</code></pre></div>\n<p>If a <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> has <code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</span></code> and you pass <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> an empty value,\nthen <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> will return a <em>normalized</em> empty value rather than raising\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>. For <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code>, this will return\n<a class=\"reference internal\" href=\"#django.forms.CharField.empty_value\" title=\"django.forms.CharField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> which defaults to an empty string. For other\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes, it might be <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. (This varies from field to field.)</p>\n<p>Widgets of required form fields have the <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> HTML attribute. Set the\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form.use_required_attribute\" title=\"django.forms.Form.use_required_attribute\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.use_required_attribute</span></code></a> attribute to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> to disable it. The\n<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> attribute isn’t included on forms of formsets because the browser\nvalidation may not be correct when adding and deleting formsets.</p>\n</section>\n<section id=\"label\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code><a class=\"heading-anchor\" href=\"#label\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.label\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>O argumento “label” permite que seja especificado um rótulo “amigável” para este campo. Isto é utilizado quando o “Campo” é renderizado em um “Formulário”.</p>\n<p>As explained in <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#ref-forms-api-outputting-html\"><span class=\"std std-ref\">Outputting forms as HTML</span></a>, the default label for a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> is generated from the field name by converting all underscores to\nspaces and upper-casing the first letter. Specify a string for <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> if\nthat default behavior doesn’t result in an adequate label. Use an empty string\n(<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&quot;</span></code>) to hide the label.</p>\n<p>Here’s a full example <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> that implements <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> for two of its fields.\nWe’ve specified <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id=False</span></code> to simplify the output:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">(</span><span class=\"n\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your website&quot;</span><span class=\"p\">,</span> <span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Your name:&lt;input type=&quot;text&quot; name=&quot;name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Your website:&lt;input type=&quot;url&quot; name=&quot;url&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"label-suffix\">\n<h3>“label_suffix”<a class=\"heading-anchor\" href=\"#label-suffix\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.label_suffix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_suffix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.label_suffix\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> argument lets you override the form’s\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code></a> on a per-field basis:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">nationality</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">captcha_answer</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;2 + 2&quot;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot; =&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot;?&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_age&quot;&gt;Age?&lt;/label&gt;&lt;input type=&quot;number&quot; name=&quot;age&quot; required id=&quot;id_age&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_nationality&quot;&gt;Nationality?&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;nationality&quot; required id=&quot;id_nationality&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_captcha_answer&quot;&gt;2 + 2 =&lt;/label&gt;&lt;input type=&quot;number&quot; name=&quot;captcha_answer&quot; required id=&quot;id_captcha_answer&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"initial\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code><a class=\"heading-anchor\" href=\"#initial\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.initial\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> argument lets you specify the initial value to use when\nrendering this <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> in an unbound <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>.</p>\n<p>To specify dynamic initial data, see the <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.initial</span></code></a> parameter.</p>\n<p>The use-case for this is when you want to display an “empty” form in which a\nfield is initialized to a particular value. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;Your name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:&lt;input type=&quot;url&quot; name=&quot;url&quot; value=&quot;https://&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>You may be thinking, why not just pass a dictionary of the initial values as\ndata when displaying the form? Well, if you do that, you’ll trigger validation,\nand the HTML output will include any validation errors:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">default_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;https://&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">default_data</span><span class=\"p\">,</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:</span>\n<span class=\"go\">  &lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;Your name&quot; required&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:</span>\n<span class=\"go\">  &lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;Enter a valid URL.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"go\">  &lt;input type=&quot;url&quot; name=&quot;url&quot; value=&quot;https://&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:</span>\n<span class=\"go\">  &lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;This field is required.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"go\">  &lt;input type=&quot;text&quot; name=&quot;comment&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n</code></pre></div>\n<p>This is why <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> values are only displayed for unbound forms. For bound\nforms, the HTML output will use the bound data.</p>\n<p>Also note that <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> values are <em>not</em> used as “fallback” data in\nvalidation if a particular field’s value is not given. <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> values are\n<em>only</em> intended for initial form display:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;comment&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Foo&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n<span class=\"go\"># The form does *not* fallback to using the initial values.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">{&#39;url&#39;: [&#39;This field is required.&#39;], &#39;name&#39;: [&#39;This field is required.&#39;]}</span>\n</code></pre></div>\n<p>Instead of a constant, you can also pass any callable:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DateForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">day</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">DateForm</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_day&quot;&gt;Day:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;day&quot; value=&quot;2023-02-11&quot; required id=&quot;id_day&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>The callable will be evaluated only when the unbound form is displayed, not\nwhen it is defined.</p>\n</section>\n<section id=\"widget\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code><a class=\"heading-anchor\" href=\"#widget\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.widget\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">widget</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.widget\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> argument lets you specify a <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget</span></code> class to use when\nrendering this <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code>. See <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/\"><span class=\"doc\">Widgets</span></a> for more information.</p>\n</section>\n<section id=\"help-text\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code><a class=\"heading-anchor\" href=\"#help-text\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">help_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.help_text\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> argument lets you specify descriptive text for this\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code>. If you provide <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code>, it will be displayed next to the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> when the <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> is rendered by one of the convenience <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>\nmethods (e.g., <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code>).</p>\n<p>Like the model field’s <a class=\"reference internal\" href=\"/pt-br/6.0/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>, this value\nisn’t HTML-escaped in automatically-generated forms.</p>\n<p>Here’s a full example <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> that implements <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> for two of its\nfields. We’ve specified <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id=False</span></code> to simplify the output:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">HelpTextContactForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">subject</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;100 characters max.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">message</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">contact_email</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">EmailField</span><span class=\"p\">(</span><span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your email (so we can reply).&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">HelpTextContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:&lt;div class=&quot;helptext&quot;&gt;100 characters max.&lt;/div&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:&lt;input type=&quot;text&quot; name=&quot;message&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Contact email:&lt;div class=&quot;helptext&quot;&gt;Your email (so we can reply).&lt;/div&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; maxlength=&quot;320&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>When a field has help text it is associated with its input using the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> HTML attribute. If the widget is rendered in a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> then <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> is added to this element, otherwise it\nis added to the widget’s <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input&gt;</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UserForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">username</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">,</span> <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;e.g., user@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UserForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;</span>\n<span class=\"go\">&lt;label for=&quot;id_username&quot;&gt;Username:&lt;/label&gt;</span>\n<span class=\"go\">&lt;div class=&quot;helptext&quot; id=&quot;id_username_helptext&quot;&gt;e.g., user@example.com&lt;/div&gt;</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;username&quot; maxlength=&quot;255&quot; required aria-describedby=&quot;id_username_helptext&quot; id=&quot;id_username&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n</code></pre></div>\n<p>When adding a custom <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> attribute, make sure to also include\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> of the <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> element (if used) in the desired order. For\nscreen reader users, descriptions will be read in their order of appearance\ninside <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UserForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">username</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>        <span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;e.g., user@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>            <span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;aria-describedby&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;custom-description id_username_helptext&quot;</span><span class=\"p\">},</span>\n<span class=\"gp\">... </span>        <span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UserForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;username&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;username&quot; aria-describedby=&quot;custom-description id_username_helptext&quot; maxlength=&quot;255&quot; id=&quot;id_username&quot; required&gt;</span>\n</code></pre></div>\n</section>\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 para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.error_messages\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">error_messages</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.error_messages\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">error_messages</span></code> argument lets you override the default messages that the\nfield will raise. Pass in a dictionary with keys matching the error messages\nyou want to override. For example, here is the default error message:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">generic</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">generic</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"w\">  </span><span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is required.&#39;]</span>\n</code></pre></div>\n<p>And here is a custom error message:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Please enter your name&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"w\">  </span><span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Please enter your name&#39;]</span>\n</code></pre></div>\n<p>In the <a class=\"reference internal\" href=\"#built-in-field-classes\">built-in Field classes</a> section below, each <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> defines the\nerror message keys it uses.</p>\n</section>\n<section id=\"validators\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validators</span></code><a class=\"heading-anchor\" href=\"#validators\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.validators\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">validators</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.validators\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">validators</span></code> argument lets you provide a list of validation functions\nfor this field.</p>\n<p>See the <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/\"><span class=\"doc\">validators documentation</span></a> for more information.</p>\n</section>\n<section id=\"localize\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">localize</span></code><a class=\"heading-anchor\" href=\"#localize\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.localize\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">localize</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.localize\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">localize</span></code> argument enables the localization of form data input, as well\nas the rendered output.</p>\n<p>See the <a class=\"reference internal\" href=\"/pt-br/6.0/topics/i18n/formatting/\"><span class=\"doc\">format localization documentation</span></a> for\nmore information.</p>\n</section>\n<section id=\"disabled\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">disabled</span></code><a class=\"heading-anchor\" href=\"#disabled\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.disabled\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">disabled</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.disabled\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">disabled</span></code> boolean argument, when set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, disables a form field\nusing the <code class=\"docutils literal notranslate\"><span class=\"pre\">disabled</span></code> HTML attribute so that it won’t be editable by users.\nEven if a user tampers with the field’s value submitted to the server, it will\nbe ignored in favor of the value from the form’s initial data.</p>\n</section>\n<section id=\"template-name\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code><a class=\"heading-anchor\" href=\"#template-name\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.template_name\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> argument allows a custom template to be used when the\nfield is rendered with <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.BoundField.as_field_group\" title=\"django.forms.BoundField.as_field_group\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_field_group()</span></code></a>. By\ndefault this value is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/field.html&quot;</span></code>. Can be changed per\nfield by overriding this attribute or more generally by overriding the default\ntemplate, see also <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/renderers/#overriding-built-in-field-templates\"><span class=\"std std-ref\">Overriding built-in field templates</span></a>.</p>\n</section>\n<section id=\"bound-field-class\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">bound_field_class</span></code><a class=\"heading-anchor\" href=\"#bound-field-class\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.bound_field_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">bound_field_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.bound_field_class\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">bound_field_class</span></code> attribute allows a per-field override of\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form.bound_field_class\" title=\"django.forms.Form.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.bound_field_class</span></code></a>.</p>\n</section>\n</section>\n<section id=\"checking-if-the-field-data-has-changed\">\n<h2>Checking if the field data has changed<a class=\"heading-anchor\" href=\"#checking-if-the-field-data-has-changed\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"has-changed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code><a class=\"heading-anchor\" href=\"#has-changed\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.has_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_changed</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Field.has_changed\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> method is used to determine if the field value has\nchanged from the initial value. Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n<p>See the <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form.has_changed\" title=\"django.forms.Form.has_changed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form.has_changed</span></code></a> documentation for more information.</p>\n</section>\n</section>\n<section id=\"built-in-field-classes\">\n<span id=\"built-in-fields\"></span><h2>Built-in <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes<a class=\"heading-anchor\" href=\"#built-in-field-classes\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Naturally, the <code class=\"docutils literal notranslate\"><span class=\"pre\">forms</span></code> library comes with a set of <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes that\nrepresent common validation needs. This section documents each built-in field.</p>\n<p>For each field, we describe the default widget used if you don’t specify\n<code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code>. We also specify the value returned when you provide an empty value\n(see the section on <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> above to understand what that means).</p>\n<section id=\"booleanfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code><a class=\"heading-anchor\" href=\"#booleanfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BooleanField\">\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\">BooleanField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BooleanField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.CheckboxInput\" title=\"django.forms.CheckboxInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> value.</p></li>\n<li><p>Validates that the value is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (e.g. the check box is checked) if\nthe field has <code class=\"docutils literal notranslate\"><span class=\"pre\">required=True</span></code>.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code></p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>Since all <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> subclasses have <code class=\"docutils literal notranslate\"><span class=\"pre\">required=True</span></code> by default, the\nvalidation condition here is important. If you want to include a\nboolean in your form that can be either <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (e.g. a\nchecked or unchecked checkbox), you must remember to pass in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</span></code> when creating the <code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code>.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"charfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code><a class=\"heading-anchor\" href=\"#charfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField\">\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\">CharField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.CharField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <a class=\"reference internal\" href=\"#django.forms.CharField.empty_value\" title=\"django.forms.CharField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a>.</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Uses <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MaxLengthValidator\" title=\"django.core.validators.MaxLengthValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxLengthValidator</span></code></a> and\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MinLengthValidator\" title=\"django.core.validators.MinLengthValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinLengthValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code> are provided. Otherwise, all inputs are valid.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code></p></li>\n</ul>\n<p>Has the following optional arguments for validation:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.max_length\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.min_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.min_length\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If provided, these arguments ensure that the string is at most or at\nleast the given length.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.strip\">\n<span class=\"sig-name descname\"><span class=\"pre\">strip</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.strip\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (default), the value will be stripped of leading and\ntrailing whitespace.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.empty_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The value to use to represent “empty”. Defaults to an empty string.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"choicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code><a class=\"heading-anchor\" href=\"#choicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ChoiceField\">\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\">ChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (an empty string)</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Validates that the given value exists in the list of choices.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> error message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code>, which will\nbe replaced with the selected choice.</p>\n<p>Takes one extra argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ChoiceField.choices\">\n<span class=\"sig-name descname\"><span class=\"pre\">choices</span></span><a class=\"heading-anchor\" href=\"#django.forms.ChoiceField.choices\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Either an <a class=\"reference external\" href=\"https://docs.python.org/3/glossary.html#term-iterable\" title=\"(em Python v3.14)\"><span class=\"xref std std-term\">iterable</span></a> of 2-tuples to use as choices for this\nfield, <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#field-choices-enum-types\"><span class=\"std std-ref\">enumeration type</span></a>, or a\ncallable that returns such an iterable. This argument accepts the same\nformats as the <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> argument to a model field. See the\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#field-choices\"><span class=\"std std-ref\">model field reference documentation on choices</span></a>\nfor more details. If the argument is a callable, it is evaluated each\ntime the field’s form is initialized, in addition to during rendering.\nDefaults to an empty list.</p>\n</dd></dl>\n\n<aside class=\"admonition-choice-type admonition\">\n<p class=\"admonition-title\">Choice type</p>\n<p>This field normalizes choices to strings, so if choices are required in\nother data types, such as integers or booleans, consider using\n<a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a> instead.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"datefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code><a class=\"heading-anchor\" href=\"#datefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateField\">\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\">DateField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.DateField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> object.</p></li>\n<li><p>Validates that the given value is either a <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> or string formatted in a particular date format.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes one optional argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateField.input_formats\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An iterable of formats used to attempt to convert a string to a valid\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> object.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> argument is provided, the default input formats are\ntaken from the active locale format <code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code> key, or from\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> if localization is disabled. See also\n<a class=\"reference internal\" href=\"/pt-br/6.0/topics/i18n/formatting/\"><span class=\"doc\">format localization</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"datetimefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code><a class=\"heading-anchor\" href=\"#datetimefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeField\">\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\">DateTimeField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.DateTimeField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.DateTimeInput\" title=\"django.forms.DateTimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> object.</p></li>\n<li><p>Validates that the given value is either a <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> or string formatted in a particular datetime format.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes one optional argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateTimeField.input_formats\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An iterable of formats used to attempt to convert a string to a valid\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> object, in addition to ISO 8601 formats.</p>\n</dd></dl>\n\n<p>The field always accepts strings in ISO 8601 formatted dates or similar\nrecognized by <a class=\"reference internal\" href=\"/pt-br/6.0/ref/utils/#django.utils.dateparse.parse_datetime\" title=\"django.utils.dateparse.parse_datetime\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">parse_datetime()</span></code></a>. Some examples\nare:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25</span> <span class=\"pre\">14:30:59'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30:59'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25</span> <span class=\"pre\">14:30'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30Z'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30+02:00'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25'</span></code></p></li>\n</ul>\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> argument is provided, the default input formats are\ntaken from the active locale format <code class=\"docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code> keys, or from <a class=\"reference internal\" href=\"/pt-br/6.0/ref/settings/#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a> and\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> if localization is disabled. See also\n<a class=\"reference internal\" href=\"/pt-br/6.0/topics/i18n/formatting/\"><span class=\"doc\">format localization</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code><a class=\"heading-anchor\" href=\"#decimalfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField\">\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\">DecimalField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a> when <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, else <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal</span></code>.</p></li>\n<li><p>Validates that the given value is a decimal. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> and\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> are provided. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> is\nprovided. Leading and trailing whitespace is ignored.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_decimal_places</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">max_whole_digits</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code>.</p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> error messages may contain\n<code class=\"docutils literal notranslate\"><span class=\"pre\">%(limit_value)s</span></code>, which will be substituted by the appropriate limit.\nSimilarly, the <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_decimal_places</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">max_whole_digits</span></code> error messages may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(max)s</span></code>.</p>\n<p>Takes five optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.max_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.min_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>These control the range of values permitted in the field, and should be\ngiven as <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal.Decimal</span></code> values.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.max_digits\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_digits</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.max_digits\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The maximum number of digits (those before the decimal point plus those\nafter the decimal point, with leading zeros stripped) permitted in the\nvalue.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.decimal_places\">\n<span class=\"sig-name descname\"><span class=\"pre\">decimal_places</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.decimal_places\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The maximum number of decimal places permitted.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.step_size\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Limit valid inputs to an integral multiple of <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code>. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> is also provided, it’s added as an offset to determine if\nthe step size matches.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"durationfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DurationField</span></code><a class=\"heading-anchor\" href=\"#durationfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DurationField\">\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\">DurationField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.DurationField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">timedelta</span></code></a>.</p></li>\n<li><p>Validates that the given value is a string which can be converted into a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">timedelta</span></code>. The value must be between <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta.min\" title=\"(em Python v3.14)\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">datetime.timedelta.min</span></code></a>\nand <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta.max\" title=\"(em Python v3.14)\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">datetime.timedelta.max</span></code></a>.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">overflow</span></code>.</p></li>\n</ul>\n<p>Accepts any format understood by\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/utils/#django.utils.dateparse.parse_duration\" title=\"django.utils.dateparse.parse_duration\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">parse_duration()</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"emailfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code><a class=\"heading-anchor\" href=\"#emailfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.EmailField\">\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\">EmailField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.EmailField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.EmailInput\" title=\"django.forms.EmailInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailInput</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>.</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Uses <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.EmailValidator\" title=\"django.core.validators.EmailValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailValidator</span></code></a> to validate that\nthe given value is a valid email address, using a moderately complex\nregular expression.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Has the optional arguments <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>, and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> which work just as they do for <a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>. The\n<code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> argument defaults to 320 (see <span class=\"target\" id=\"index-0\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3696.html#section-3\"><strong>RFC 3696 Section 3</strong></a>).</p>\n</dd></dl>\n\n</section>\n<section id=\"filefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code><a class=\"heading-anchor\" href=\"#filefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FileField\">\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\">FileField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.FileField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: An <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> object that wraps the file content\nand file name into a single object.</p></li>\n<li><p>Can validate that non-empty file data has been bound to the form.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">missing</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">empty</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code></p></li>\n</ul>\n<p>Has the optional arguments for validation: <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">allow_empty_file</span></code>. If provided, these ensure that the file name is at\nmost the given length, and that validation will succeed even if the file\ncontent is empty.</p>\n<p>To learn more about the <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> object, see the <a class=\"reference internal\" href=\"/pt-br/6.0/topics/http/file-uploads/\"><span class=\"doc\">file uploads\ndocumentation</span></a>.</p>\n<p>When you use a <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> in a form, you must also remember to\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#binding-uploaded-files\"><span class=\"std std-ref\">bind the file data to the form</span></a>.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> error refers to the length of the filename. In the error\nmessage for that key, <code class=\"docutils literal notranslate\"><span class=\"pre\">%(max)d</span></code> will be replaced with the maximum\nfilename length and <code class=\"docutils literal notranslate\"><span class=\"pre\">%(length)d</span></code> will be replaced with the current\nfilename length.</p>\n</dd></dl>\n\n</section>\n<section id=\"filepathfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FilePathField</span></code><a class=\"heading-anchor\" href=\"#filepathfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField\">\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\">FilePathField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (an empty string)</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Validates that the selected choice exists in the list of choices.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>The field allows choosing from files inside a certain directory. It takes\nfive extra arguments; only <code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> is required:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.path\">\n<span class=\"sig-name descname\"><span class=\"pre\">path</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.path\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The absolute path to the directory whose contents you want listed. This\ndirectory must exist.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.recursive\">\n<span class=\"sig-name descname\"><span class=\"pre\">recursive</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.recursive\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (the default) only the direct contents of <code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> will be\noffered as choices. If <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, the directory will be descended into\nrecursively and all descendants will be listed as choices.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.match\">\n<span class=\"sig-name descname\"><span class=\"pre\">match</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.match\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A regular expression pattern; only files with names matching this\nexpression will be allowed as choices.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.allow_files\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_files</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.allow_files\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Optional. Either <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Default is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Specifies\nwhether files in the specified location should be included. Either this\nor <a class=\"reference internal\" href=\"#django.forms.FilePathField.allow_folders\" title=\"django.forms.FilePathField.allow_folders\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_folders</span></code></a> must be <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.allow_folders\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_folders</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.allow_folders\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Optional. Either <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Default is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Specifies\nwhether folders in the specified location should be included. Either\nthis or <a class=\"reference internal\" href=\"#django.forms.FilePathField.allow_files\" title=\"django.forms.FilePathField.allow_files\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_files</span></code></a> must be <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"floatfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FloatField</span></code><a class=\"heading-anchor\" href=\"#floatfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField\">\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\">FloatField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.FloatField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a> when <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, else <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python float.</p></li>\n<li><p>Validates that the given value is a float. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> and\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> are provided. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> is\nprovided. Leading and trailing whitespace is allowed, as in Python’s\n<code class=\"docutils literal notranslate\"><span class=\"pre\">float()</span></code> function.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code>.</p></li>\n</ul>\n<p>Takes three optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.max_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.min_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>These control the range of values permitted in the field.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.step_size\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Limit valid inputs to an integral multiple of <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code>. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> is also provided, it’s added as an offset to determine if\nthe step size matches.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"genericipaddressfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">GenericIPAddressField</span></code><a class=\"heading-anchor\" href=\"#genericipaddressfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField\">\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\">GenericIPAddressField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A field containing either an IPv4 or an IPv6 address.</p>\n<ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (an empty string)</p></li>\n<li><p>Normalizes to: A string. IPv6 addresses are normalized as described\nbelow.</p></li>\n<li><p>Validates that the given value is a valid IP address.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code></p></li>\n</ul>\n<p>The IPv6 address normalization follows <span class=\"target\" id=\"index-1\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc4291.html#section-2.2\"><strong>RFC 4291 Section 2.2</strong></a> section 2.2,\nincluding using the IPv4 format suggested in paragraph 3 of that section,\nlike <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:192.0.2.0</span></code>. For example, <code class=\"docutils literal notranslate\"><span class=\"pre\">2001:0::0:01</span></code> would be\nnormalized to <code class=\"docutils literal notranslate\"><span class=\"pre\">2001::1</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:0a0a:0a0a</span></code> to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:10.10.10.10</span></code>. All characters are converted to lowercase.</p>\n<p>Takes three optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.protocol\">\n<span class=\"sig-name descname\"><span class=\"pre\">protocol</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.protocol\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Limits valid inputs to the specified protocol.\nAccepted values are <code class=\"docutils literal notranslate\"><span class=\"pre\">both</span></code> (default), <code class=\"docutils literal notranslate\"><span class=\"pre\">IPv4</span></code>\nor <code class=\"docutils literal notranslate\"><span class=\"pre\">IPv6</span></code>. Matching is case insensitive.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.unpack_ipv4\">\n<span class=\"sig-name descname\"><span class=\"pre\">unpack_ipv4</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.unpack_ipv4\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Unpacks IPv4 mapped addresses like <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:192.0.2.1</span></code>.\nIf this option is enabled that address would be unpacked to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">192.0.2.1</span></code>. Default is disabled. Can only be used\nwhen <code class=\"docutils literal notranslate\"><span class=\"pre\">protocol</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">'both'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.max_length\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Defaults to 39, and behaves the same way as it does for\n<a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"imagefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code><a class=\"heading-anchor\" href=\"#imagefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ImageField\">\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\">ImageField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ImageField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: An <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> object that wraps the file content\nand file name into a single object.</p></li>\n<li><p>Validates that file data has been bound to the form. Also uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.FileExtensionValidator\" title=\"django.core.validators.FileExtensionValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileExtensionValidator</span></code></a> to validate that\nthe file extension is supported by Pillow.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">missing</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">empty</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_image</span></code></p></li>\n</ul>\n<p>Using an <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> requires that <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/pillow/\">pillow</a> is installed with\nsupport for the image formats you use. If you encounter a <code class=\"docutils literal notranslate\"><span class=\"pre\">corrupt</span> <span class=\"pre\">image</span></code>\nerror when you upload an image, it usually means that Pillow doesn’t\nunderstand its format. To fix this, install the appropriate library and\nreinstall Pillow.</p>\n<p>When you use an <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> on a form, you must also remember to\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#binding-uploaded-files\"><span class=\"std std-ref\">bind the file data to the form</span></a>.</p>\n<p>After the field has been cleaned and validated, the <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code>\nobject will have an additional <code class=\"docutils literal notranslate\"><span class=\"pre\">image</span></code> attribute containing the Pillow\n<a class=\"reference external\" href=\"https://pillow.readthedocs.io/en/latest/reference/Image.html\">Image</a> instance used to check if the file was a valid image. Pillow\ncloses the underlying file descriptor after verifying an image, so while\nnon-image data attributes, such as <code class=\"docutils literal notranslate\"><span class=\"pre\">format</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">height</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">width</span></code>,\nare available, methods that access the underlying image data, such as\n<code class=\"docutils literal notranslate\"><span class=\"pre\">getdata()</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">getpixel()</span></code>, cannot be used without reopening the file.\nFor example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">PIL</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Image</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.files.uploadedfile</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleUploadedFile</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ImageForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">img</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ImageField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">file_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;img&quot;</span><span class=\"p\">:</span> <span class=\"n\">SimpleUploadedFile</span><span class=\"p\">(</span><span class=\"s2\">&quot;test.png&quot;</span><span class=\"p\">,</span> <span class=\"sa\">b</span><span class=\"s2\">&quot;file data&quot;</span><span class=\"p\">)}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ImageForm</span><span class=\"p\">({},</span> <span class=\"n\">file_data</span><span class=\"p\">)</span>\n<span class=\"go\"># Pillow closes the underlying file descriptor.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span> <span class=\"o\">=</span> <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span><span class=\"p\">[</span><span class=\"s2\">&quot;img&quot;</span><span class=\"p\">]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span>\n<span class=\"go\">&lt;PIL.PngImagePlugin.PngImageFile image mode=RGBA size=191x287 at 0x7F5985045C18&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">width</span>\n<span class=\"go\">191</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">height</span>\n<span class=\"go\">287</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">format</span>\n<span class=\"go\">&#39;PNG&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">getdata</span><span class=\"p\">()</span>\n<span class=\"go\"># Raises AttributeError: &#39;NoneType&#39; object has no attribute &#39;seek&#39;.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image</span> <span class=\"o\">=</span> <span class=\"n\">Image</span><span class=\"o\">.</span><span class=\"n\">open</span><span class=\"p\">(</span><span class=\"n\">image_field</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">getdata</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;ImagingCore object at 0x7f5984f874b0&gt;</span>\n</code></pre></div>\n<p>Additionally, <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile.content_type</span></code> will be updated with the\nimage’s content type if Pillow can determine it, otherwise it will be set\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"integerfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code><a class=\"heading-anchor\" href=\"#integerfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField\">\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\">IntegerField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a> when <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, else <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python integer.</p></li>\n<li><p>Validates that the given value is an integer. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> and\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> are provided. Uses\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> is\nprovided. Leading and trailing whitespace is allowed, as in Python’s\n<code class=\"docutils literal notranslate\"><span class=\"pre\">int()</span></code> function.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> error messages may\ncontain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(limit_value)s</span></code>, which will be substituted by the appropriate\nlimit.</p>\n<p>Takes three optional arguments for validation:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.max_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.min_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>These control the range of values permitted in the field.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.step_size\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Limit valid inputs to an integral multiple of <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code>. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> is also provided, it’s added as an offset to determine if\nthe step size matches.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"jsonfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code><a class=\"heading-anchor\" href=\"#jsonfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.JSONField\">\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\">JSONField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoder</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\">decoder</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=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.JSONField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A field which accepts JSON encoded data for a\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONField</span></code></a>.</p>\n<ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Textarea\" title=\"django.forms.Textarea\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Textarea</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python representation of the JSON value (usually as a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>), depending on <a class=\"reference internal\" href=\"#django.forms.JSONField.decoder\" title=\"django.forms.JSONField.decoder\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">JSONField.decoder</span></code></a>.</p></li>\n<li><p>Validates that the given value is a valid JSON.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes two optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.JSONField.encoder\">\n<span class=\"sig-name descname\"><span class=\"pre\">encoder</span></span><a class=\"heading-anchor\" href=\"#django.forms.JSONField.encoder\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONEncoder\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONEncoder</span></code></a> subclass to serialize data types not\nsupported by the standard JSON serializer (e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code>\nor <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a>). For example, you can use the\n<a class=\"reference internal\" href=\"/pt-br/6.0/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder\" title=\"django.core.serializers.json.DjangoJSONEncoder\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoJSONEncoder</span></code></a> class.</p>\n<p>Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">json.JSONEncoder</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.JSONField.decoder\">\n<span class=\"sig-name descname\"><span class=\"pre\">decoder</span></span><a class=\"heading-anchor\" href=\"#django.forms.JSONField.decoder\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONDecoder\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONDecoder</span></code></a> subclass to deserialize the input. Your\ndeserialization may need to account for the fact that you can’t be\ncertain of the input type. For example, you run the risk of returning a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> that was actually a string that just happened to be in the\nsame format chosen for <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code>s.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">decoder</span></code> can be used to validate the input. If\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONDecodeError\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONDecodeError</span></code></a> is raised during the deserialization,\na <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> will be raised.</p>\n<p>Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">json.JSONDecoder</span></code>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>If you use a <a class=\"reference internal\" href=\"/pt-br/6.0/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>, the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">encoder</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">decoder</span></code> from <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONField</span></code></a>\nwill be used.</p>\n</aside>\n<aside class=\"admonition-user-friendly-forms admonition\">\n<p class=\"admonition-title\">User friendly forms</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code> is not particularly user friendly in most cases. However,\nit is a useful way to format data from a client-side widget for\nsubmission to the server.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"multiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#multiplechoicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultipleChoiceField\">\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\">MultipleChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultipleChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (an empty list)</p></li>\n<li><p>Normalizes to: A list of strings.</p></li>\n<li><p>Validates that every value in the given list of values exists in the list\nof choices.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_list</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> error message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code>, which will\nbe replaced with the selected choice.</p>\n<p>Takes one extra required argument, <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>, as for\n<a class=\"reference internal\" href=\"#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"nullbooleanfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code><a class=\"heading-anchor\" href=\"#nullbooleanfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.NullBooleanField\">\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\">NullBooleanField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.NullBooleanField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.NullBooleanSelect\" title=\"django.forms.NullBooleanSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NullBooleanSelect</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> value.</p></li>\n<li><p>Validates nothing (i.e., it never raises a <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>).</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code> may be used with widgets such as\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> or <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a>\nby providing the widget <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>:</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=\"n\">NullBooleanField</span><span class=\"p\">(</span>\n    <span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">Select</span><span class=\"p\">(</span>\n        <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"p\">[</span>\n            <span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Unknown&quot;</span><span class=\"p\">),</span>\n            <span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Yes&quot;</span><span class=\"p\">),</span>\n            <span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">,</span> <span class=\"s2\">&quot;No&quot;</span><span class=\"p\">),</span>\n        <span class=\"p\">]</span>\n    <span class=\"p\">)</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"regexfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RegexField</span></code><a class=\"heading-anchor\" href=\"#regexfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RegexField\">\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\">RegexField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.RegexField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>.</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Uses <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> to validate that\nthe given value matches a certain regular expression.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes one required argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RegexField.regex\">\n<span class=\"sig-name descname\"><span class=\"pre\">regex</span></span><a class=\"heading-anchor\" href=\"#django.forms.RegexField.regex\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A regular expression specified either as a string or a compiled regular\nexpression object.</p>\n</dd></dl>\n\n<p>Also takes <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">strip</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>\nwhich work just as they do for <a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RegexField.strip\">\n<span class=\"sig-name descname\"><span class=\"pre\">strip</span></span><a class=\"heading-anchor\" href=\"#django.forms.RegexField.strip\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. If enabled, stripping will be applied before the\nregex validation.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"slugfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SlugField</span></code><a class=\"heading-anchor\" href=\"#slugfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SlugField\">\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\">SlugField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.SlugField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <a class=\"reference internal\" href=\"#django.forms.SlugField.empty_value\" title=\"django.forms.SlugField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a>.</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Uses <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.validate_slug\" title=\"django.core.validators.validate_slug\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">validate_slug</span></code></a> or\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.validate_unicode_slug\" title=\"django.core.validators.validate_unicode_slug\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">validate_unicode_slug</span></code></a> to validate that\nthe given value contains only letters, numbers, underscores, and hyphens.</p></li>\n<li><p>Error messages: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>This field is intended for use in representing a model\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#django.db.models.SlugField\" title=\"django.db.models.SlugField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SlugField</span></code></a> in forms.</p>\n<p>Takes two optional parameters:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SlugField.allow_unicode\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_unicode</span></span><a class=\"heading-anchor\" href=\"#django.forms.SlugField.allow_unicode\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A boolean instructing the field to accept Unicode letters in addition\nto ASCII letters. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SlugField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.SlugField.empty_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The value to use to represent “empty”. Defaults to an empty string.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"timefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code><a class=\"heading-anchor\" href=\"#timefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeField\">\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\">TimeField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.TimeField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> object.</p></li>\n<li><p>Validates that the given value is either a <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> or string\nformatted in a particular time format.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes one optional argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.TimeField.input_formats\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An iterable of formats used to attempt to convert a string to a valid\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> object.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> argument is provided, the default input formats are\ntaken from the active locale format <code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code> key, or from\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/settings/#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a> if localization is disabled. See also\n<a class=\"reference internal\" href=\"/pt-br/6.0/topics/i18n/formatting/\"><span class=\"doc\">format localization</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"typedchoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code><a class=\"heading-anchor\" href=\"#typedchoicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedChoiceField\">\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\">TypedChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.TypedChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Just like a <a class=\"reference internal\" href=\"#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a>, except <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a> takes\ntwo extra arguments, <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.coerce\" title=\"django.forms.TypedChoiceField.coerce\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">coerce</span></code></a> and <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.empty_value\" title=\"django.forms.TypedChoiceField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a>.</p>\n<ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.empty_value\" title=\"django.forms.TypedChoiceField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a>.</p></li>\n<li><p>Normalizes to: A value of the type provided by the <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.coerce\" title=\"django.forms.TypedChoiceField.coerce\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">coerce</span></code></a>\nargument.</p></li>\n<li><p>Validates that the given value exists in the list of choices and can be\ncoerced.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>Takes extra arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedChoiceField.coerce\">\n<span class=\"sig-name descname\"><span class=\"pre\">coerce</span></span><a class=\"heading-anchor\" href=\"#django.forms.TypedChoiceField.coerce\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A function that takes one argument and returns a coerced value.\nExamples include the built-in <code class=\"docutils literal notranslate\"><span class=\"pre\">int</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">float</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">bool</span></code> and other\ntypes. Defaults to an identity function. Note that coercion happens\nafter input validation, so it is possible to coerce to a value not\npresent in <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedChoiceField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.TypedChoiceField.empty_value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The value to use to represent “empty.” Defaults to the empty string;\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> is another common choice here. Note that this value will not\nbe coerced by the function given in the <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> argument, so choose\nit accordingly.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"typedmultiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TypedMultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#typedmultiplechoicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedMultipleChoiceField\">\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\">TypedMultipleChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.TypedMultipleChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Just like a <a class=\"reference internal\" href=\"#django.forms.MultipleChoiceField\" title=\"django.forms.MultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleChoiceField</span></code></a>, except\n<a class=\"reference internal\" href=\"#django.forms.TypedMultipleChoiceField\" title=\"django.forms.TypedMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedMultipleChoiceField</span></code></a> takes two extra arguments, <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>.</p>\n<ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></p></li>\n<li><p>Normalizes to: A list of values of the type provided by the <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code>\nargument.</p></li>\n<li><p>Validates that the given values exists in the list of choices and can be\ncoerced.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> error message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code>, which will\nbe replaced with the selected choice.</p>\n<p>Takes two extra arguments, <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>, as for\n<a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"urlfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">URLField</span></code><a class=\"heading-anchor\" href=\"#urlfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.URLField\">\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\">URLField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.URLField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.URLInput\" title=\"django.forms.URLInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">URLInput</span></code></a></p></li>\n<li><p>Empty value: Whatever you’ve given as <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>.</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Uses <a class=\"reference internal\" href=\"/pt-br/6.0/ref/validators/#django.core.validators.URLValidator\" title=\"django.core.validators.URLValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">URLValidator</span></code></a> to validate that the\ngiven value is a valid URL.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Has the optional arguments <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code>\nwhich work just as they do for <a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>, and one more argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.URLField.assume_scheme\">\n<span class=\"sig-name descname\"><span class=\"pre\">assume_scheme</span></span><a class=\"heading-anchor\" href=\"#django.forms.URLField.assume_scheme\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The scheme assumed for URLs provided without one. Defaults to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code>. For example, if <code class=\"docutils literal notranslate\"><span class=\"pre\">assume_scheme</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code> and the\nprovided value is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;example.com&quot;</span></code>, the normalized value will be\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://example.com&quot;</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"uuidfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">UUIDField</span></code><a class=\"heading-anchor\" href=\"#uuidfield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.UUIDField\">\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\">UUIDField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.UUIDField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a> object.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>This field will accept any string format accepted as the <code class=\"docutils literal notranslate\"><span class=\"pre\">hex</span></code> argument\nto the <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(em Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a> constructor.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"slightly-complex-built-in-field-classes\">\n<h2>Slightly complex built-in <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes<a class=\"heading-anchor\" href=\"#slightly-complex-built-in-field-classes\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"combofield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ComboField</span></code><a class=\"heading-anchor\" href=\"#combofield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ComboField\">\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\">ComboField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ComboField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (an empty string)</p></li>\n<li><p>Normalizes to: A string.</p></li>\n<li><p>Validates the given value against each of the fields specified\nas an argument to the <code class=\"docutils literal notranslate\"><span class=\"pre\">ComboField</span></code>.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>Takes one extra required argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ComboField.fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.ComboField.fields\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The list of fields that should be used to validate the field’s value\n(in the order in which they are provided).</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><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\">ComboField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ComboField</span><span class=\"p\">(</span><span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">20</span><span class=\"p\">),</span> <span class=\"n\">EmailField</span><span class=\"p\">()])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;test@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;test@example.com&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;longemailaddress@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Ensure this value has at most 20 characters (it has 28).&#39;]</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"multivaluefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code><a class=\"heading-anchor\" href=\"#multivaluefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField\">\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\">MultiValueField</span></span><span class=\"sig-paren\">(</span><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\">()</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (an empty string)</p></li>\n<li><p>Normalizes to: the type returned by the <code class=\"docutils literal notranslate\"><span class=\"pre\">compress</span></code> method of the\nsubclass.</p></li>\n<li><p>Validates the given value against each of the fields specified\nas an argument to the <code class=\"docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code>.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code></p></li>\n</ul>\n<p>Aggregates the logic of multiple fields that together produce a single\nvalue.</p>\n<p>This field is abstract and must be subclassed. In contrast with the\nsingle-value fields, subclasses of <a class=\"reference internal\" href=\"#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a> must not\nimplement <a class=\"reference internal\" href=\"#django.forms.Field.clean\" title=\"django.forms.Field.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">clean()</span></code></a> but instead - implement\n<a class=\"reference internal\" href=\"#django.forms.MultiValueField.compress\" title=\"django.forms.MultiValueField.compress\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">compress()</span></code></a>.</p>\n<p>Takes one extra required argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.fields\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A tuple of fields whose values are cleaned and subsequently combined\ninto a single value. Each value of the field is cleaned by the\ncorresponding field in <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> – the first value is cleaned by the\nfirst field, the second value is cleaned by the second field, etc.\nOnce all fields are cleaned, the list of clean values is combined into\na single value by <a class=\"reference internal\" href=\"#django.forms.MultiValueField.compress\" title=\"django.forms.MultiValueField.compress\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">compress()</span></code></a>.</p>\n</dd></dl>\n\n<p>Also takes some optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.require_all_fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">require_all_fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.require_all_fields\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, in which case a <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> validation error\nwill be raised if no value is supplied for any field.</p>\n<p>When set to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, the <a class=\"reference internal\" href=\"#django.forms.Field.required\" title=\"django.forms.Field.required\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.required</span></code></a> attribute can be set\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> for individual fields to make them optional. If no value\nis supplied for a required field, an <code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code> validation error\nwill be raised.</p>\n<p>A default <code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code> error message can be defined on the\n<a class=\"reference internal\" href=\"#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a> subclass, or different messages can be defined\non each individual field. 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.core.validators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RegexValidator</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PhoneField</span><span class=\"p\">(</span><span class=\"n\">MultiValueField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Define one message for all fields.</span>\n        <span class=\"n\">error_messages</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a country calling code and a phone number.&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">}</span>\n        <span class=\"c1\"># Or define a different message for each field.</span>\n        <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a country calling code.&quot;</span><span class=\"p\">},</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span>\n                    <span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid country calling code.&quot;</span><span class=\"p\">),</span>\n                <span class=\"p\">],</span>\n            <span class=\"p\">),</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a phone number.&quot;</span><span class=\"p\">},</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid phone number.&quot;</span><span class=\"p\">)],</span>\n            <span class=\"p\">),</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid extension.&quot;</span><span class=\"p\">)],</span>\n                <span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n            <span class=\"p\">),</span>\n        <span class=\"p\">)</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span>\n            <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"n\">error_messages</span><span class=\"p\">,</span>\n            <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"n\">fields</span><span class=\"p\">,</span>\n            <span class=\"n\">require_all_fields</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n            <span class=\"o\">**</span><span class=\"n\">kwargs</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.widget\">\n<span class=\"sig-name descname\"><span class=\"pre\">widget</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.widget\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Must be a subclass of <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.MultiWidget</span></code></a>.\nDefault value is <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>, which\nprobably is not very useful in this case.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.compress\">\n<span class=\"sig-name descname\"><span class=\"pre\">compress</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">data_list</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.compress\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Takes a list of valid values and returns  a “compressed” version of\nthose values – in a single value. For example,\n<a class=\"reference internal\" href=\"#django.forms.SplitDateTimeField\" title=\"django.forms.SplitDateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeField</span></code></a> is a subclass which combines a time field\nand a date field into a <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> object.</p>\n<p>This method must be implemented in the subclasses.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"splitdatetimefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeField</span></code><a class=\"heading-anchor\" href=\"#splitdatetimefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeField\">\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\">SplitDateTimeField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A Python <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> object.</p></li>\n<li><p>Validates that the given value is a <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> or string\nformatted in a particular datetime format.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_date</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_time</span></code></p></li>\n</ul>\n<p>Takes two optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeField.input_date_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_date_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeField.input_date_formats\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A list of formats used to attempt to convert a string to a valid\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> object.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">input_date_formats</span></code> argument is provided, the default input\nformats for <a class=\"reference internal\" href=\"#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> are used.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeField.input_time_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_time_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeField.input_time_formats\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A list of formats used to attempt to convert a string to a valid\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> object.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">input_time_formats</span></code> argument is provided, the default input\nformats for <a class=\"reference internal\" href=\"#django.forms.TimeField\" title=\"django.forms.TimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeField</span></code></a> are used.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"fields-which-handle-relationships\">\n<span id=\"id2\"></span><h2>Fields which handle relationships<a class=\"heading-anchor\" href=\"#fields-which-handle-relationships\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Two fields are available for representing relationships between\nmodels: <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> and\n<a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a>. Both of these fields require a\nsingle <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> parameter that is used to create the choices for\nthe field. Upon form validation, these fields will place either one\nmodel object (in the case of <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code>) or multiple model\nobjects (in the case of <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code>) into the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> dictionary of the form.</p>\n<p>For more complex uses, you can specify <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset=None</span></code> when declaring the\nform field and then populate the <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> in the form’s <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>\nmethod:</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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FooMultipleChoiceForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">foo_select</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelMultipleChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;foo_select&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Both <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> have an <code class=\"docutils literal notranslate\"><span class=\"pre\">iterator</span></code>\nattribute which specifies the class used to iterate over the queryset when\ngenerating choices. See <a class=\"reference internal\" href=\"#iterating-relationship-choices\"><span class=\"std std-ref\">Iterating relationship choices</span></a> for details.</p>\n<section id=\"modelchoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code><a class=\"heading-anchor\" href=\"#modelchoicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField\">\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\">ModelChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>Empty value: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>Normalizes to: A model instance.</p></li>\n<li><p>Validates that the given id exists in the queryset.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> error message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code>, which will\nbe replaced with the selected choice.</p>\n<p>Allows the selection of a single model object, suitable for representing a\nforeign key. Note that the default widget for <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> becomes\nimpractical when the number of entries increases. You should avoid using it\nfor more than 100 items.</p>\n<p>A single argument is required:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.queryset\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> of model objects from which the choices for the field\nare derived and which is used to validate the user’s selection. It’s\nevaluated when the form is rendered.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> also takes several optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.empty_label\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.empty_label\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>By default the <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code> widget used by <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> will\nhave an empty choice at the top of the list. You can change the text of\nthis label (which is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;---------&quot;</span></code> by default) with the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> attribute, or you can disable the empty label entirely\nby setting <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>:</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=\"c1\"># A custom empty label</span>\n<span class=\"n\">field1</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">empty_label</span><span class=\"o\">=</span><span class=\"s2\">&quot;(Nothing)&quot;</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># No empty label</span>\n<span class=\"n\">field2</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">empty_label</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Note that no empty choice is created (regardless of the value of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code>) if a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> is required and has a\ndefault initial value, or a <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> is set to\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a> and the\n<a class=\"reference internal\" href=\"#django.forms.ModelChoiceField.blank\" title=\"django.forms.ModelChoiceField.blank\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">blank</span></code></a> argument is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.to_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">to_field_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.to_field_name\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This optional argument is used to specify the field to use as the value\nof the choices in the field’s widget. Be sure it’s a unique field for\nthe model, otherwise the selected value could match more than one\nobject. By default it is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, in which case the primary key\nof each object will be used. 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=\"c1\"># No custom to_field_name</span>\n<span class=\"n\">field1</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>would yield:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_field1&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;field1&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj1.pk&quot;</span><span class=\"p\">&gt;</span>Object1<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj2.pk&quot;</span><span class=\"p\">&gt;</span>Object2<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n...\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>and:</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=\"c1\"># to_field_name provided</span>\n<span class=\"n\">field2</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">to_field_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>would yield:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_field2&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;field2&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj1.name&quot;</span><span class=\"p\">&gt;</span>Object1<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj2.name&quot;</span><span class=\"p\">&gt;</span>Object2<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n...\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.blank\">\n<span class=\"sig-name descname\"><span class=\"pre\">blank</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.blank\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>When using the <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a> widget, this optional\nboolean argument determines whether an empty choice is created. By\ndefault, <code class=\"docutils literal notranslate\"><span class=\"pre\">blank</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, in which case no empty choice is\ncreated.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> also has the attribute:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.iterator\">\n<span class=\"sig-name descname\"><span class=\"pre\">iterator</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.iterator\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The iterator class used to generate field choices from <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code>. By\ndefault, <a class=\"reference internal\" href=\"#django.forms.ModelChoiceIterator\" title=\"django.forms.ModelChoiceIterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code></a>.</p>\n</dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> method of the model will be called to generate string\nrepresentations of the objects for use in the field’s choices. To provide\ncustomized representations, subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> and override\n<code class=\"docutils literal notranslate\"><span class=\"pre\">label_from_instance</span></code>. This method will receive a model object and should\nreturn a string suitable for representing it. 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\">ModelChoiceField</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">label_from_instance</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;My Object #</span><span class=\"si\">%i</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">id</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"modelmultiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#modelmultiplechoicefield\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField\">\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\">ModelMultipleChoiceField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>Empty value: An empty <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">self.queryset.none()</span></code>)</p></li>\n<li><p>Normalizes to: A <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> of model instances.</p></li>\n<li><p>Validates that every id in the given list of values exists in the\nqueryset.</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_pk_value</span></code></p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> and the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_pk_value</span></code> message may contain <code class=\"docutils literal notranslate\"><span class=\"pre\">%(pk)s</span></code>, which will be\nsubstituted by the appropriate values.</p>\n<p>Allows the selection of one or more model objects, suitable for\nrepresenting a many-to-many relation. As with <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a>,\nyou can use <code class=\"docutils literal notranslate\"><span class=\"pre\">label_from_instance</span></code> to customize the object\nrepresentations.</p>\n<p>A single argument is required:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.queryset\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Same as <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField.queryset\" title=\"django.forms.ModelChoiceField.queryset\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.queryset</span></code></a>.</p>\n</dd></dl>\n\n<p>Takes one optional argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.to_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">to_field_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.to_field_name\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Same as <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField.to_field_name\" title=\"django.forms.ModelChoiceField.to_field_name\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.to_field_name</span></code></a>.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> also has the attribute:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.iterator\">\n<span class=\"sig-name descname\"><span class=\"pre\">iterator</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.iterator\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Same as <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField.iterator\" title=\"django.forms.ModelChoiceField.iterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.iterator</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"iterating-relationship-choices\">\n<span id=\"id3\"></span><h3>Iterating relationship choices<a class=\"heading-anchor\" href=\"#iterating-relationship-choices\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>By default, <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> and <a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> use\n<a class=\"reference internal\" href=\"#django.forms.ModelChoiceIterator\" title=\"django.forms.ModelChoiceIterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code></a> to generate their field <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>.</p>\n<p>When iterated, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> yields 2-tuple choices containing\n<a class=\"reference internal\" href=\"#django.forms.ModelChoiceIteratorValue\" title=\"django.forms.ModelChoiceIteratorValue\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code></a> instances as the first <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> element in\neach choice. <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code> wraps the choice value while\nmaintaining a reference to the source model instance that can be used in custom\nwidget implementations, for example, to add <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*\">data-* attributes</a> to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> elements.</p>\n<p>For example, consider the following models:</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.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Topping</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">price</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DecimalField</span><span class=\"p\">(</span><span class=\"n\">decimal_places</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"n\">max_digits</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Pizza</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">topping</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Topping</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>You can use a <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widget subclass to include\nthe value of <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping.price</span></code> as the HTML attribute <code class=\"docutils literal notranslate\"><span class=\"pre\">data-price</span></code> for each\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> element:</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</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ToppingSelect</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">create_option</span><span class=\"p\">(</span>\n        <span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"n\">label</span><span class=\"p\">,</span> <span class=\"n\">selected</span><span class=\"p\">,</span> <span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">subindex</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"kc\">None</span>\n    <span class=\"p\">):</span>\n        <span class=\"n\">option</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">create_option</span><span class=\"p\">(</span>\n            <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"n\">label</span><span class=\"p\">,</span> <span class=\"n\">selected</span><span class=\"p\">,</span> <span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">subindex</span><span class=\"p\">,</span> <span class=\"n\">attrs</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">value</span><span class=\"p\">:</span>\n            <span class=\"n\">option</span><span class=\"p\">[</span><span class=\"s2\">&quot;attrs&quot;</span><span class=\"p\">][</span><span class=\"s2\">&quot;data-price&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">price</span>\n        <span class=\"k\">return</span> <span class=\"n\">option</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PizzaForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</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\">Pizza</span>\n        <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;topping&quot;</span><span class=\"p\">]</span>\n        <span class=\"n\">widgets</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;topping&quot;</span><span class=\"p\">:</span> <span class=\"n\">ToppingSelect</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>This will render the <code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza.topping</span></code> select as:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_topping&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;topping&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;&quot;</span> <span class=\"na\">selected</span><span class=\"p\">&gt;</span>---------<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;1&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.50&quot;</span><span class=\"p\">&gt;</span>mushrooms<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;2&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.25&quot;</span><span class=\"p\">&gt;</span>onions<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;3&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.75&quot;</span><span class=\"p\">&gt;</span>peppers<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;4&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;2.00&quot;</span><span class=\"p\">&gt;</span>pineapple<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>For more advanced usage you may subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> in order to\ncustomize the yielded 2-tuple choices.</p>\n<section id=\"modelchoiceiterator\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code><a class=\"heading-anchor\" href=\"#modelchoiceiterator\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator\">\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\">ModelChoiceIterator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The default class assigned to the <code class=\"docutils literal notranslate\"><span class=\"pre\">iterator</span></code> attribute of\n<a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> and <a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a>. An\niterable that yields 2-tuple choices from the queryset.</p>\n<p>A single argument is required:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator.field\">\n<span class=\"sig-name descname\"><span class=\"pre\">field</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator.field\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The instance of <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> to\niterate and yield choices.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> has the following method:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator.__iter__\">\n<span class=\"sig-name descname\"><span class=\"pre\">__iter__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator.__iter__\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Yields 2-tuple choices, in the <code class=\"docutils literal notranslate\"><span class=\"pre\">(value,</span> <span class=\"pre\">label)</span></code> format used by\n<a class=\"reference internal\" href=\"#django.forms.ChoiceField.choices\" title=\"django.forms.ChoiceField.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ChoiceField.choices</span></code></a>. The first <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> element is a\n<a class=\"reference internal\" href=\"#django.forms.ModelChoiceIteratorValue\" title=\"django.forms.ModelChoiceIteratorValue\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code></a> instance.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"modelchoiceiteratorvalue\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code><a class=\"heading-anchor\" href=\"#modelchoiceiteratorvalue\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue\">\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\">ModelChoiceIteratorValue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">instance</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Two arguments are required:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.value\">\n<span class=\"sig-name descname\"><span class=\"pre\">value</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.value\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The value of the choice. This value is used to render the <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code>\nattribute of an HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> element.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.instance\">\n<span class=\"sig-name descname\"><span class=\"pre\">instance</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.instance\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The model instance from the queryset. The instance can be accessed in\ncustom <code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceWidget.create_option()</span></code> implementations to adjust the\nrendered HTML.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code> has the following method:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.__str__\">\n<span class=\"sig-name descname\"><span class=\"pre\">__str__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.__str__\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Return <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> as a string to be rendered in HTML.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n</section>\n<section id=\"creating-custom-fields\">\n<h2>Creating custom fields<a class=\"heading-anchor\" href=\"#creating-custom-fields\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>If the built-in <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes don’t meet your needs, you can create custom\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes. To do this, create a subclass of <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.Field</span></code>. Its\nonly requirements are that it implement a <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> method and that its\n<code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> method accept the core arguments mentioned above (<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code>).</p>\n<p>You can also customize how a field will be accessed by overriding\n<a class=\"reference internal\" href=\"#django.forms.Field.bound_field_class\" title=\"django.forms.Field.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">bound_field_class</span></code></a> or override\n<a class=\"reference internal\" href=\"#django.forms.Field.get_bound_field\" title=\"django.forms.Field.get_bound_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.get_bound_field()</span></code></a> if you need more flexibility when creating\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.get_bound_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_bound_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Field.get_bound_field\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Takes an instance of <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> and the name of the field.\nThe returned <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> instance will be used when accessing the\nfield in a template.</p>\n</dd></dl>\n\n<p>See <a class=\"reference internal\" href=\"/pt-br/6.0/ref/forms/api/#custom-boundfield\"><span class=\"std std-ref\">Customizing BoundField</span></a> for examples of overriding a <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>.</p>\n</section>","rootId":"module-django.forms.fields","toc":[{"title":"Core field arguments","anchor":"core-field-arguments","children":[{"title":"required","anchor":"required","children":[]},{"title":"label","anchor":"label","children":[]},{"title":"“label_suffix”","anchor":"label-suffix","children":[]},{"title":"initial","anchor":"initial","children":[]},{"title":"widget","anchor":"widget","children":[]},{"title":"help_text","anchor":"help-text","children":[]},{"title":"error_messages","anchor":"error-messages","children":[]},{"title":"validators","anchor":"validators","children":[]},{"title":"localize","anchor":"localize","children":[]},{"title":"disabled","anchor":"disabled","children":[]},{"title":"template_name","anchor":"template-name","children":[]},{"title":"bound_field_class","anchor":"bound-field-class","children":[]}]},{"title":"Checking if the field data has changed","anchor":"checking-if-the-field-data-has-changed","children":[{"title":"has_changed()","anchor":"has-changed","children":[]}]},{"title":"Built-in Field classes","anchor":"built-in-field-classes","children":[{"title":"BooleanField","anchor":"booleanfield","children":[]},{"title":"CharField","anchor":"charfield","children":[]},{"title":"ChoiceField","anchor":"choicefield","children":[]},{"title":"DateField","anchor":"datefield","children":[]},{"title":"DateTimeField","anchor":"datetimefield","children":[]},{"title":"DecimalField","anchor":"decimalfield","children":[]},{"title":"DurationField","anchor":"durationfield","children":[]},{"title":"EmailField","anchor":"emailfield","children":[]},{"title":"FileField","anchor":"filefield","children":[]},{"title":"FilePathField","anchor":"filepathfield","children":[]},{"title":"FloatField","anchor":"floatfield","children":[]},{"title":"GenericIPAddressField","anchor":"genericipaddressfield","children":[]},{"title":"ImageField","anchor":"imagefield","children":[]},{"title":"IntegerField","anchor":"integerfield","children":[]},{"title":"JSONField","anchor":"jsonfield","children":[]},{"title":"MultipleChoiceField","anchor":"multiplechoicefield","children":[]},{"title":"NullBooleanField","anchor":"nullbooleanfield","children":[]},{"title":"RegexField","anchor":"regexfield","children":[]},{"title":"SlugField","anchor":"slugfield","children":[]},{"title":"TimeField","anchor":"timefield","children":[]},{"title":"TypedChoiceField","anchor":"typedchoicefield","children":[]},{"title":"TypedMultipleChoiceField","anchor":"typedmultiplechoicefield","children":[]},{"title":"URLField","anchor":"urlfield","children":[]},{"title":"UUIDField","anchor":"uuidfield","children":[]}]},{"title":"Slightly complex built-in Field classes","anchor":"slightly-complex-built-in-field-classes","children":[{"title":"ComboField","anchor":"combofield","children":[]},{"title":"MultiValueField","anchor":"multivaluefield","children":[]},{"title":"SplitDateTimeField","anchor":"splitdatetimefield","children":[]}]},{"title":"Fields which handle relationships","anchor":"fields-which-handle-relationships","children":[{"title":"ModelChoiceField","anchor":"modelchoicefield","children":[]},{"title":"ModelMultipleChoiceField","anchor":"modelmultiplechoicefield","children":[]},{"title":"Iterating relationship choices","anchor":"iterating-relationship-choices","children":[{"title":"ModelChoiceIterator","anchor":"modelchoiceiterator","children":[]},{"title":"ModelChoiceIteratorValue","anchor":"modelchoiceiteratorvalue","children":[]}]}]},{"title":"Creating custom fields","anchor":"creating-custom-fields","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Referência da API","url":"/pt-br/6.0/ref/"},{"docname":"ref/forms/index","title":"Formulários","url":"/pt-br/6.0/ref/forms/"}],"prev":{"docname":"ref/forms/api","title":"The Forms API","url":"/pt-br/6.0/ref/forms/api/"},"next":{"docname":"ref/forms/models","title":"Model forms","url":"/pt-br/6.0/ref/forms/models/"},"formats":{"html":"/pt-br/6.0/ref/forms/fields/","markdown":"/pt-br/6.0/ref/forms/fields.md","json":"/pt-br/6.0/ref/forms/fields.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/forms/fields.txt","official":"https://docs.djangoproject.com/pt-br/6.0/ref/forms/fields/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}