{"title":"Form fields","version":"2.1","locale":"ko","docname":"ref/forms/fields","url":"/ko/2.1/ref/forms/fields/","canonical":"https://djangodocs.dev/ko/2.1/ref/forms/fields/","summary":"class Field ( ** kwargs ) Link to this definition # When you create a Form class, the most important part is defining the fields of the form. Each field has custom…","html":"<span id=\"form-fields\"></span><h1>Form fields<a class=\"heading-anchor\" href=\"#module-django.forms.fields\"><span class=\"visually-hidden\">Link to this heading</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><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.Field\"><span class=\"visually-hidden\">Link to this definition</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 to this definition</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 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.ValidationError</span></code>\nexception or returns the clean value:</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=\"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=\"s1\">&#39;foo@example.com&#39;</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=\"s1\">&#39;invalid email address&#39;</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 to this heading</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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</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=\"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=\"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=\"s1\">&#39;foo&#39;</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=\"s1\">&#39;&#39;</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=\"s1\">&#39; &#39;</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>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=\"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=\"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=\"s1\">&#39;foo&#39;</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=\"s1\">&#39;&#39;</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 be 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=\"/ko/2.1/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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> argument lets you specify the “human-friendly” label for this\nfield. This is used when the <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> is displayed in a <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>.</p>\n<p>As explained in “Outputting forms as HTML” above, 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 <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> if that default\nbehavior doesn’t result in an adequate 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=\"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=\"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=\"s1\">&#39;Your name&#39;</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=\"s1\">&#39;Your website&#39;</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\">&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;tr&gt;&lt;th&gt;Your name:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;name&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Your website:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;url&quot; name=&quot;url&quot;&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Comment:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"label-suffix\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code><a class=\"heading-anchor\" href=\"#label-suffix\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> argument lets you override the form’s\n<a class=\"reference internal\" href=\"/ko/2.1/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=\"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=\"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=\"s1\">&#39;2 + 2&#39;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s1\">&#39; =&#39;</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\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s1\">&#39;?&#39;</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=\"o\">.</span><span class=\"n\">as_p</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_age&quot;&gt;Age?&lt;/label&gt; &lt;input id=&quot;id_age&quot; name=&quot;age&quot; type=&quot;number&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_nationality&quot;&gt;Nationality?&lt;/label&gt; &lt;input id=&quot;id_nationality&quot; name=&quot;nationality&quot; type=&quot;text&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_captcha_answer&quot;&gt;2 + 2 =&lt;/label&gt; &lt;input id=&quot;id_captcha_answer&quot; name=&quot;captcha_answer&quot; type=&quot;number&quot; required&gt;&lt;/p&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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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=\"/ko/2.1/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=\"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=\"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=\"s1\">&#39;Your name&#39;</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=\"s1\">&#39;http://&#39;</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\">&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;tr&gt;&lt;th&gt;Name:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;Your name&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Url:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;url&quot; name=&quot;url&quot; value=&quot;http://&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Comment:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/td&gt;&lt;/tr&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=\"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=\"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\">&gt;&gt;&gt; </span><span class=\"n\">default_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Your name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;url&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;http://&#39;</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;tr&gt;&lt;th&gt;Name:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;Your name&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Url:&lt;/th&gt;&lt;td&gt;&lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;Enter a valid URL.&lt;/li&gt;&lt;/ul&gt;&lt;input type=&quot;url&quot; name=&quot;url&quot; value=&quot;http://&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Comment:&lt;/th&gt;&lt;td&gt;&lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;This field is required.&lt;/li&gt;&lt;/ul&gt;&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/td&gt;&lt;/tr&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=\"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=\"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=\"s1\">&#39;Your name&#39;</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=\"s1\">&#39;http://&#39;</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\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;url&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;comment&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Foo&#39;</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* fall back 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=\"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=\"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\">&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;tr&gt;&lt;th&gt;Day:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;day&quot; value=&quot;12/23/2008&quot; required&gt;&lt;td&gt;&lt;/tr&gt;</span>\n</code></pre></div>\n<p>The callable will be evaluated only when the unbound form is displayed, not when 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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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=\"/ko/2.1/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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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=\"/ko/2.1/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=\"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=\"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=\"s1\">&#39;100 characters max.&#39;</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\">sender</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=\"s1\">&#39;A valid email address, please.&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">cc_myself</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">BooleanField</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\">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=\"o\">.</span><span class=\"n\">as_table</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Subject:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;br&gt;&lt;span class=&quot;helptext&quot;&gt;100 characters max.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Message:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;message&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Sender:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required&gt;&lt;br&gt;A valid email address, please.&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;Cc myself:&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot;&gt;&lt;/td&gt;&lt;/tr&gt;</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=\"o\">.</span><span class=\"n\">as_ul</span><span class=\"p\">()))</span>\n<span class=\"go\">&lt;li&gt;Subject: &lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt; &lt;span class=&quot;helptext&quot;&gt;100 characters max.&lt;/span&gt;&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;Message: &lt;input type=&quot;text&quot; name=&quot;message&quot; required&gt;&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;Sender: &lt;input type=&quot;email&quot; name=&quot;sender&quot; required&gt; A valid email address, please.&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;Cc myself: &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot;&gt;&lt;/li&gt;</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=\"o\">.</span><span class=\"n\">as_p</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;p&gt;Subject: &lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt; &lt;span class=&quot;helptext&quot;&gt;100 characters max.&lt;/span&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;Message: &lt;input type=&quot;text&quot; name=&quot;message&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;Sender: &lt;input type=&quot;email&quot; name=&quot;sender&quot; required&gt; A valid email address, please.&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;Cc myself: &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot;&gt;&lt;/p&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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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 you\nwant to override. For example, here is the default error message:</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=\"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=\"s1\">&#39;&#39;</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=\"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=\"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=\"s1\">&#39;required&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Please enter your name&#39;</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=\"s1\">&#39;&#39;</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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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=\"/ko/2.1/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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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=\"/ko/2.1/topics/i18n/formatting/\"><span class=\"doc\">format localization</span></a> documentation 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 to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">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>\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 to this heading</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> method is used to determine if the field value has changed\nfrom 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=\"/ko/2.1/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 to this heading</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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\">참고</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 boolean\nin 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 checked or\nunchecked checkbox), you must remember to pass in <code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</span></code> when\ncreating 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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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 three 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 to this definition</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>If provided, these arguments ensure that the string is at most or at least\nthe given length.</p>\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 to this definition</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 to this definition</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 be\nreplaced 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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Either an iterable (e.g., a list or tuple) of 2-tuples to use as\nchoices for this field, or a callable that returns such an iterable.\nThis argument accepts the same formats as the <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> argument to a\nmodel field. See the <a class=\"reference internal\" href=\"/ko/2.1/ref/models/fields/#field-choices\"><span class=\"std std-ref\">model field reference documentation on\nchoices</span></a> for more details. If the argument is a\ncallable, it is evaluated each time the field’s form is initialized.\nDefaults to an empty list.</p>\n</dd></dl>\n\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 to this heading</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 to this definition</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 two\nextra 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=\"/ko/2.1/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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A function that takes one argument and returns a coerced value. Examples\ninclude 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 types. Defaults\nto an identity function. Note that coercion happens after input\nvalidation, so it is possible to coerce to a value not present in\n<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 to this definition</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 be\ncoerced by the function given in the <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> argument, so choose it\naccordingly.</p>\n</dd></dl>\n\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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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_formats</span></code> argument is provided, the default input formats are:</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=\"p\">[</span><span class=\"s1\">&#39;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s1\">&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;2006-10-25&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%Y&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;10/25/2006&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%y&#39;</span><span class=\"p\">]</span>      <span class=\"c1\"># &#39;10/25/06&#39;</span>\n</code></pre></div>\n<p>Additionally, if you specify <a class=\"reference internal\" href=\"/ko/2.1/ref/settings/#std-setting-USE_L10N\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_L10N=False</span></code></a> in your settings, the\nfollowing will also be included in the default input formats:</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=\"p\">[</span><span class=\"s1\">&#39;%b </span><span class=\"si\">%d</span><span class=\"s1\"> %Y&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;Oct 25 2006&#39;</span>\n <span class=\"s1\">&#39;%b </span><span class=\"si\">%d</span><span class=\"s1\">, %Y&#39;</span><span class=\"p\">,</span>     <span class=\"c1\"># &#39;Oct 25, 2006&#39;</span>\n <span class=\"s1\">&#39;</span><span class=\"si\">%d</span><span class=\"s1\"> %b %Y&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;25 Oct 2006&#39;</span>\n <span class=\"s1\">&#39;</span><span class=\"si\">%d</span><span class=\"s1\"> %b, %Y&#39;</span><span class=\"p\">,</span>     <span class=\"c1\"># &#39;25 Oct, 2006&#39;</span>\n <span class=\"s1\">&#39;%B </span><span class=\"si\">%d</span><span class=\"s1\"> %Y&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;October 25 2006&#39;</span>\n <span class=\"s1\">&#39;%B </span><span class=\"si\">%d</span><span class=\"s1\">, %Y&#39;</span><span class=\"p\">,</span>     <span class=\"c1\"># &#39;October 25, 2006&#39;</span>\n <span class=\"s1\">&#39;</span><span class=\"si\">%d</span><span class=\"s1\"> %B %Y&#39;</span><span class=\"p\">,</span>      <span class=\"c1\"># &#39;25 October 2006&#39;</span>\n <span class=\"s1\">&#39;</span><span class=\"si\">%d</span><span class=\"s1\"> %B, %Y&#39;</span><span class=\"p\">]</span>     <span class=\"c1\"># &#39;25 October, 2006&#39;</span>\n</code></pre></div>\n<p>See also <a class=\"reference internal\" href=\"/ko/2.1/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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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.datetime</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:</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=\"p\">[</span><span class=\"s1\">&#39;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s1\"> %H:%M:%S&#39;</span><span class=\"p\">,</span>    <span class=\"c1\"># &#39;2006-10-25 14:30:59&#39;</span>\n <span class=\"s1\">&#39;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s1\"> %H:%M&#39;</span><span class=\"p\">,</span>       <span class=\"c1\"># &#39;2006-10-25 14:30&#39;</span>\n <span class=\"s1\">&#39;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s1\">&#39;</span><span class=\"p\">,</span>             <span class=\"c1\"># &#39;2006-10-25&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%Y %H:%M:%S&#39;</span><span class=\"p\">,</span>    <span class=\"c1\"># &#39;10/25/2006 14:30:59&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%Y %H:%M&#39;</span><span class=\"p\">,</span>       <span class=\"c1\"># &#39;10/25/2006 14:30&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%Y&#39;</span><span class=\"p\">,</span>             <span class=\"c1\"># &#39;10/25/2006&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%y %H:%M:%S&#39;</span><span class=\"p\">,</span>    <span class=\"c1\"># &#39;10/25/06 14:30:59&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%y %H:%M&#39;</span><span class=\"p\">,</span>       <span class=\"c1\"># &#39;10/25/06 14:30&#39;</span>\n <span class=\"s1\">&#39;%m/</span><span class=\"si\">%d</span><span class=\"s1\">/%y&#39;</span><span class=\"p\">]</span>             <span class=\"c1\"># &#39;10/25/06&#39;</span>\n</code></pre></div>\n<p>See also <a class=\"reference internal\" href=\"/ko/2.1/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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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. 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></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 four 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 to this definition</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 to this definition</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 to this definition</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The maximum number of decimal places permitted.</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"(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=\"(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=\"(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=\"/ko/2.1/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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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: <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>Uses <a class=\"reference internal\" href=\"/ko/2.1/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 two optional arguments for validation, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>.\nIf provided, these arguments ensure that the string is at most or at least the\ngiven length.</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 two 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=\"/ko/2.1/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=\"/ko/2.1/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 filename\nlength and <code class=\"docutils literal notranslate\"><span class=\"pre\">%(length)d</span></code> will be replaced with the current filename 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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 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 five\nextra 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 to this definition</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 to this definition</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A regular expression pattern; only files with names matching this expression\nwill 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 to this definition</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 or\n<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 to this definition</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 this or\n<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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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. Leading and trailing whitespace is allowed,\nas in Python’s <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></p></li>\n</ul>\n<p>Takes two optional arguments for validation, <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>.\nThese control the range of values permitted in the field.</p>\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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"reference external\" href=\"https://pillow.readthedocs.io/en/latest/\">Pillow</a> is installed with support\nfor 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> error\nwhen you upload an image, it usually means that Pillow doesn’t understand\nits format. To fix this, install the appropriate library and reinstall\nPillow.</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=\"/ko/2.1/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. Also,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile.content_type</span></code> will be updated with the image’s content type\nif Pillow can determine it, otherwise it will be set to <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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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. Leading and trailing whitespace is allowed,\nas in Python’s <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></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.</p>\n<p>Takes two 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 to this definition</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>These control the range of values permitted in the field.</p>\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 to this heading</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 to this definition</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=\"/ko/2.1/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 below.</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></p></li>\n</ul>\n<p>The IPv6 address normalization follows <span class=\"target\" id=\"index-0\"></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, like\n<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 normalized to\n<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 <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:10.10.10.10</span></code>. All characters\nare converted to lowercase.</p>\n<p>Takes two 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 to this definition</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 to this definition</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</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 be\nreplaced 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 <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=\"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 to this heading</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 to this definition</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 <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>\ntakes 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>.</p>\n<ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 be\nreplaced 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=\"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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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>Uses <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">strip</span></code>, which work just\nas 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 to this definition</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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>Uses <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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=\"/ko/2.1/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 an optional parameter:</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 to this definition</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</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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_formats</span></code> argument is provided, the default input formats are:</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=\"s1\">&#39;%H:%M:%S&#39;</span><span class=\"p\">,</span>     <span class=\"c1\"># &#39;14:30:59&#39;</span>\n<span class=\"s1\">&#39;%H:%M&#39;</span><span class=\"p\">,</span>        <span class=\"c1\"># &#39;14:30&#39;</span>\n</code></pre></div>\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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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: <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>Uses <a class=\"reference internal\" href=\"/ko/2.1/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>Takes the following optional arguments:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.URLField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.URLField.max_length\"><span class=\"visually-hidden\">Link to this definition</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.URLField.min_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.URLField.min_length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>These are the same as <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField.max_length</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField.min_length</span></code>.</p>\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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(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=\"(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 to this heading</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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 (in\nthe order in which they are provided).</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=\"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=\"s1\">&#39;test@example.com&#39;</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=\"s1\">&#39;longemailaddress@example.com&#39;</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 subclass.</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 to this definition</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 to this definition</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<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=\"s1\">&#39;incomplete&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Enter a country calling code and a phone number.&#39;</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=\"s1\">&#39;incomplete&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Enter a country calling code.&#39;</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=\"s1\">&#39;^[0-9]+$&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Enter a valid country calling code.&#39;</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=\"s1\">&#39;incomplete&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Enter a phone number.&#39;</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=\"s1\">&#39;^[0-9]+$&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Enter a valid phone number.&#39;</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=\"s1\">&#39;^[0-9]+$&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Enter a valid extension.&#39;</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> <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> <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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Must be a subclass of <a class=\"reference internal\" href=\"/ko/2.1/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=\"/ko/2.1/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 to this definition</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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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 to this definition</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 formats\nfor <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 to this definition</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 formats\nfor <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<h2>Fields which handle relationships<a class=\"heading-anchor\" href=\"#fields-which-handle-relationships\"><span class=\"visually-hidden\">Link to this heading</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=\"s1\">&#39;foo_select&#39;</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<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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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>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 to this definition</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 two 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 to this definition</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 have an\nempty choice at the top of the list. You can change the text of this\nlabel (which is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;---------&quot;</span></code> by default) with the <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code>\nattribute, or you can disable the empty label entirely by setting\n<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 if a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> is required and has a default\ninitial value, no empty choice is created (regardless of the value\nof <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</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 to this definition</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<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<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 to this heading</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 to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>Default widget: <a class=\"reference internal\" href=\"/ko/2.1/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> (self.queryset.none())</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\">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 to this definition</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 to this definition</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</dd></dl>\n\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 to this heading</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 easily create\ncustom <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes. To do this, just create a subclass of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.Field</span></code>. Its only requirements are that it implement a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> method and that its <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> method accept the core arguments\nmentioned above (<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <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>,\n<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=\"/ko/2.1/ref/forms/api/#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\">get_bound_field()</span></code></a>.</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":"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":"TypedChoiceField","anchor":"typedchoicefield","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":"ImageField","anchor":"imagefield","children":[]},{"title":"IntegerField","anchor":"integerfield","children":[]},{"title":"GenericIPAddressField","anchor":"genericipaddressfield","children":[]},{"title":"MultipleChoiceField","anchor":"multiplechoicefield","children":[]},{"title":"TypedMultipleChoiceField","anchor":"typedmultiplechoicefield","children":[]},{"title":"NullBooleanField","anchor":"nullbooleanfield","children":[]},{"title":"RegexField","anchor":"regexfield","children":[]},{"title":"SlugField","anchor":"slugfield","children":[]},{"title":"TimeField","anchor":"timefield","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":"Creating custom fields","anchor":"creating-custom-fields","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API Reference","url":"/ko/2.1/ref/"},{"docname":"ref/forms/index","title":"Forms","url":"/ko/2.1/ref/forms/"}],"prev":{"docname":"ref/forms/api","title":"The Forms API","url":"/ko/2.1/ref/forms/api/"},"next":{"docname":"ref/forms/models","title":"Model Form Functions","url":"/ko/2.1/ref/forms/models/"},"formats":{"html":"/ko/2.1/ref/forms/fields/","markdown":"/ko/2.1/ref/forms/fields.md","json":"/ko/2.1/ref/forms/fields.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/ref/forms/fields.txt","official":"https://docs.djangoproject.com/ko/2.1/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"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}