{"title":"Widget","version":"5.2","locale":"id","docname":"ref/forms/widgets","url":"/id/5.2/ref/forms/widgets/","canonical":"https://djangodocs.dev/id/5.2/ref/forms/widgets/","summary":"A widget is Django's representation of an HTML input element. The widget handles the rendering of the HTML, and the extraction of data from a GET/POST dictionary…","html":"<span id=\"widgets\"></span><h1>Widget<a class=\"heading-anchor\" href=\"#module-django.forms.widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>A widget is Django's representation of an HTML input element. The widget\nhandles the rendering of the HTML, and the extraction of data from a GET/POST\ndictionary that corresponds to the widget.</p>\n<p>The HTML generated by the built-in widgets uses HTML5 syntax, targeting\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;!DOCTYPE</span> <span class=\"pre\">html&gt;</span></code>. For example, it uses boolean attributes such as <code class=\"docutils literal notranslate\"><span class=\"pre\">checked</span></code>\nrather than the XHTML style of <code class=\"docutils literal notranslate\"><span class=\"pre\">checked='checked'</span></code>.</p>\n<aside class=\"admonition admonition-tip\">\n<p class=\"admonition-title\">Tip</p>\n<p>Widgets should not be confused with the <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/\"><span class=\"doc\">form fields</span></a>.\nForm fields deal with the logic of input validation and are used directly\nin templates. Widgets deal with rendering of HTML form input elements on\nthe web page and extraction of raw submitted data. However, widgets do\nneed to be <a class=\"reference internal\" href=\"#widget-to-field\"><span class=\"std std-ref\">assigned</span></a> to form fields.</p>\n</aside>\n<section id=\"specifying-widgets\">\n<span id=\"widget-to-field\"></span><h2>Menentukan widget<a class=\"heading-anchor\" href=\"#specifying-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Whenever you specify a field on a form, Django will use a default widget\nthat is appropriate to the type of data that is to be displayed. To find\nwhich widget is used on which field, see the documentation about\n<a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#built-in-fields\"><span class=\"std std-ref\">KelaS-kelas Field siap-pakai</span></a>.</p>\n<p>However, if you want to use a different widget for a field, you can\nuse the <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.Field.widget\" title=\"django.forms.Field.widget\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">widget</span></code></a> argument on the field definition. 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</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">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=\"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=\"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=\"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><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Textarea</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Ini akan menentukan formulir dengan komentar yang menggunakan widget <a class=\"reference internal\" href=\"#django.forms.Textarea\" title=\"django.forms.Textarea\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Textarea</span></code></a>  terbesar, daripada widget <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a> awal.</p>\n</section>\n<section id=\"setting-arguments-for-widgets\">\n<h2>Mengatur argumen untuk widget<a class=\"heading-anchor\" href=\"#setting-arguments-for-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Many widgets have optional extra arguments; they can be set when defining the\nwidget on the field. In the following example, the\n<a class=\"reference internal\" href=\"#django.forms.SelectDateWidget.years\" title=\"django.forms.SelectDateWidget.years\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">years</span></code></a> attribute is set for a\n<a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectDateWidget</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n<span class=\"n\">BIRTH_YEAR_CHOICES</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;1980&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;1981&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;1982&quot;</span><span class=\"p\">]</span>\n<span class=\"n\">FAVORITE_COLORS_CHOICES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;blue&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Blue&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;green&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Green&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;black&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Black&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">}</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">SimpleForm</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\">birth_year</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span>\n        <span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">SelectDateWidget</span><span class=\"p\">(</span><span class=\"n\">years</span><span class=\"o\">=</span><span class=\"n\">BIRTH_YEAR_CHOICES</span><span class=\"p\">)</span>\n    <span class=\"p\">)</span>\n    <span class=\"n\">favorite_colors</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">MultipleChoiceField</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=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CheckboxSelectMultiple</span><span class=\"p\">,</span>\n        <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">FAVORITE_COLORS_CHOICES</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Lihat <a class=\"reference internal\" href=\"#built-in-widgets\"><span class=\"std std-ref\">Widget pasang tetap</span></a> untuk informasi lebih tentang widget-widget mana tersedia dan argumen mana mereka terima.</p>\n</section>\n<section id=\"widgets-inheriting-from-the-select-widget\">\n<h2>Widget warisan dari widget <code class=\"docutils literal notranslate\"><span class=\"pre\">Select</span></code><a class=\"heading-anchor\" href=\"#widgets-inheriting-from-the-select-widget\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Widgets inheriting from the <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widget deal with choices. They\npresent the user with a list of options to choose from. The different widgets\npresent this choice differently; the <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widget itself uses a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code> HTML list representation, while <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a> uses radio\nbuttons.</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widgets are used by default on <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a> fields. The\nchoices displayed on the widget are inherited from the <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a> and\nchanging <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.ChoiceField.choices\" title=\"django.forms.ChoiceField.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ChoiceField.choices</span></code></a> will update <a class=\"reference internal\" href=\"#django.forms.Select.choices\" title=\"django.forms.Select.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Select.choices</span></code></a>. For\nexample:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">CHOICES</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;1&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;First&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;2&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Second&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ChoiceField</span><span class=\"p\">(</span><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">RadioSelect</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">CHOICES</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span><span class=\"o\">.</span><span class=\"n\">choices</span>\n<span class=\"go\">[(&#39;1&#39;, &#39;First&#39;), (&#39;2&#39;, &#39;Second&#39;)]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">choices</span>\n<span class=\"go\">[(&#39;1&#39;, &#39;First&#39;), (&#39;2&#39;, &#39;Second&#39;)]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">choices</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span><span class=\"o\">.</span><span class=\"n\">choices</span> <span class=\"o\">=</span> <span class=\"p\">[(</span><span class=\"s2\">&quot;1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;First and only&quot;</span><span class=\"p\">)]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">choice_field</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">choices</span>\n<span class=\"go\">[(&#39;1&#39;, &#39;First and only&#39;)]</span>\n</code></pre></div>\n<p>Widgets which offer a <a class=\"reference internal\" href=\"#django.forms.Select.choices\" title=\"django.forms.Select.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">choices</span></code></a> attribute can however be used\nwith fields which are not based on choice -- such as a <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a> --\nbut it is recommended to use a <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a>-based field when the\nchoices are inherent to the model and not just the representational widget.</p>\n</section>\n<section id=\"customizing-widget-instances\">\n<h2>Menyesuaikan instance widget<a class=\"heading-anchor\" href=\"#customizing-widget-instances\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>When Django renders a widget as HTML, it only renders very minimal markup -\nDjango doesn't add class names, or any other widget-specific attributes. This\nmeans, for example, that all <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a> widgets will appear the same\non your web pages.</p>\n<p>Ada dua cara menyesuaikan widget: <a class=\"reference internal\" href=\"#styling-widget-instances\"><span class=\"std std-ref\">per widget instance</span></a> dan <a class=\"reference internal\" href=\"#styling-widget-classes\"><span class=\"std std-ref\">per widget class</span></a>.</p>\n<section id=\"styling-widget-instances\">\n<span id=\"id1\"></span><h3>Menggayakan instance widget<a class=\"heading-anchor\" href=\"#styling-widget-instances\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>If you want to make one widget instance look different from another, you will\nneed to specify additional attributes at the time when the widget object is\ninstantiated and assigned to a form field (and perhaps add some rules to your\nCSS files).</p>\n<p>For example, take the following form:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">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=\"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=\"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=\"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</code></pre></div>\n<p>This form will include <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a> widgets for the name and comment\nfields, and a <a class=\"reference internal\" href=\"#django.forms.URLInput\" title=\"django.forms.URLInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">URLInput</span></code></a> widget for the url field. Each has default\nrendering - no CSS class, no extra attributes:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:&lt;input type=&quot;text&quot; name=&quot;name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:&lt;input type=&quot;url&quot; name=&quot;url&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>On a real web page, you probably want to customize this. You might want a\nlarger input element for the comment, and you might want the 'name' widget to\nhave some special CSS class. It is also possible to specify the 'type'\nattribute to use a different HTML5 input type. To do this, you use the\n<a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Widget.attrs</span></code></a> argument when creating the widget:</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\">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=\"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\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;special&quot;</span><span class=\"p\">}))</span>\n    <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=\"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><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;size&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;40&quot;</span><span class=\"p\">}))</span>\n</code></pre></div>\n<p>Anda dapat juga merubah widget dalam pengertian formulir:</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\">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=\"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=\"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=\"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\n    <span class=\"n\">name</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">attrs</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">({</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;special&quot;</span><span class=\"p\">})</span>\n    <span class=\"n\">comment</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">attrs</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">size</span><span class=\"o\">=</span><span class=\"s2\">&quot;40&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Atau jika bidang tidak dinyatakan langsung pada formulir (seperti bidang formulir model), anda dapat menggunakan atribut <a class=\"reference internal\" href=\"/id/5.2/ref/forms/api/#django.forms.Form.fields\" title=\"django.forms.Form.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.fields</span></code></a>:</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\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">attrs</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">({</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;special&quot;</span><span class=\"p\">})</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;comment&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">attrs</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">size</span><span class=\"o\">=</span><span class=\"s2\">&quot;40&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Django kemudian akan menyertakan atribut tambahan dalam keluaran dibangun:</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\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:&lt;input type=&quot;text&quot; name=&quot;name&quot; class=&quot;special&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:&lt;input type=&quot;url&quot; name=&quot;url&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:&lt;input type=&quot;text&quot; name=&quot;comment&quot; size=&quot;40&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Anda dapat juga mensetel <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> HTML menggunakan <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">attrs</span></code></a>. Lihat <a class=\"reference internal\" href=\"/id/5.2/ref/forms/api/#django.forms.BoundField.id_for_label\" title=\"django.forms.BoundField.id_for_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.id_for_label</span></code></a> sebagai contoh.</p>\n</section>\n<section id=\"styling-widget-classes\">\n<span id=\"id2\"></span><h3>Menggayakan kelas widget<a class=\"heading-anchor\" href=\"#styling-widget-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Dengan widget, itu memungkinkan menambahkan assets (<code class=\"docutils literal notranslate\"><span class=\"pre\">css</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">javascript</span></code>) dan lebih mendalam menyesuaikan penampilan dan perilaku mereka.</p>\n<p>In a nutshell, you will need to subclass the widget and either\n<a class=\"reference internal\" href=\"/id/5.2/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">define a &quot;Media&quot; inner class</span></a> or\n<a class=\"reference internal\" href=\"/id/5.2/topics/forms/media/#dynamic-property\"><span class=\"std std-ref\">create a &quot;media&quot; property</span></a>.</p>\n<p>These methods involve somewhat advanced Python programming and are described in\ndetail in the <a class=\"reference internal\" href=\"/id/5.2/topics/forms/media/\"><span class=\"doc\">Form Assets</span></a> topic guide.</p>\n</section>\n</section>\n<section id=\"base-widget-classes\">\n<span id=\"id3\"></span><h2>Kelas-kelas widget dasar<a class=\"heading-anchor\" href=\"#base-widget-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Base widget classes <a class=\"reference internal\" href=\"#django.forms.Widget\" title=\"django.forms.Widget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Widget</span></code></a> and <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a> are subclassed by\nall the <a class=\"reference internal\" href=\"#built-in-widgets\"><span class=\"std std-ref\">built-in widgets</span></a> and may serve as a\nfoundation for custom widgets.</p>\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 class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget\">\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\">Widget</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This abstract class cannot be rendered, but provides the basic attribute\n<a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">attrs</span></code></a>.  You may also implement or override the\n<a class=\"reference internal\" href=\"#django.forms.Widget.render\" title=\"django.forms.Widget.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render()</span></code></a> method on custom widgets.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.attrs\">\n<span class=\"sig-name descname\"><span class=\"pre\">attrs</span></span><a class=\"heading-anchor\" href=\"#django.forms.Widget.attrs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah dictionary mengandung atribut HTML untuk disetel pada widget dibangun.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;size&quot;</span><span class=\"p\">:</span> <span class=\"mi\">10</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span><span class=\"o\">.</span><span class=\"n\">render</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;A name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&lt;input title=&quot;Your name&quot; type=&quot;text&quot; name=&quot;name&quot; value=&quot;A name&quot; size=&quot;10&quot;&gt;&#39;</span>\n</code></pre></div>\n<p>If you assign a value of <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> to an attribute,\nit will be rendered as an HTML5 boolean attribute:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</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\">render</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;A name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&lt;input name=&quot;name&quot; type=&quot;text&quot; value=&quot;A name&quot; required&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt;</span>\n<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\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">False</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\">render</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;A name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&lt;input name=&quot;name&quot; type=&quot;text&quot; value=&quot;A name&quot;&gt;&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.supports_microseconds\">\n<span class=\"sig-name descname\"><span class=\"pre\">supports_microseconds</span></span><a class=\"heading-anchor\" href=\"#django.forms.Widget.supports_microseconds\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah atribut yang awalan menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Jika disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, mikrodetik bagian dari nilai-nilai <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> dan <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.time\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">time</span></code></a> akan disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.format_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">format_value</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.Widget.format_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Cleans and returns a value for use in the widget template. <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code>\nisn't guaranteed to be valid input, therefore subclass implementations\nshould program defensively.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.get_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a dictionary of values to use when rendering the widget\ntemplate. By default, the dictionary contains a single key,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'widget'</span></code>, which is a dictionary representation of the widget\ncontaining the following keys:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'name'</span></code>: Nama dari bidang dari argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'is_hidden'</span></code>: Sebuah boolean menunjukkan apakah atau tidak widget ini tersembunyi.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'required'</span></code>: Sebuah boolean menunjukkan  apakah atau tidak bidang untuk widget ini diwajibkan.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'value'</span></code>: Nilai seperti dikembalikan oleh <a class=\"reference internal\" href=\"#django.forms.Widget.format_value\" title=\"django.forms.Widget.format_value\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">format_value()</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'attrs'</span></code>: Atribut-atribut HTML untuk disetel pada widget dibangun. Perpaduan dari atribut <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">attrs</span></code></a> dan argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'template_name'</span></code>: Nilai dari <code class=\"docutils literal notranslate\"><span class=\"pre\">self.template_name</span></code>.</p></li>\n</ul>\n<p>Subkelas-subkelas <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget</span></code> dapat menyediakan penyesuaian nilai konteks dengan menimpa metode ini.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.id_for_label\">\n<span class=\"sig-name descname\"><span class=\"pre\">id_for_label</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">id_</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.id_for_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the HTML ID attribute of this widget for use by a <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>,\ngiven the ID of the field. Returns an empty string if an ID isn't\navailable.</p>\n<p>This hook is necessary because some widgets have multiple HTML\nelements and, thus, multiple IDs. In that case, this method should\nreturn an ID value that corresponds to the first ID in the widget's\ntags.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.render\">\n<span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renders a widget to HTML using the given renderer. If <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, the renderer from the <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> setting is\nused.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.value_from_datadict\">\n<span class=\"sig-name descname\"><span class=\"pre\">value_from_datadict</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">data</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">files</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.value_from_datadict\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Given a dictionary of data and this widget's name, returns the value\nof this widget. <code class=\"docutils literal notranslate\"><span class=\"pre\">files</span></code> may contain data coming from\n<a class=\"reference internal\" href=\"/id/5.2/ref/request-response/#django.http.HttpRequest.FILES\" title=\"django.http.HttpRequest.FILES\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">request.FILES</span></code></a>. Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>\nif a value wasn't provided. Note also that <code class=\"docutils literal notranslate\"><span class=\"pre\">value_from_datadict</span></code> may\nbe called more than once during handling of form data, so if you\ncustomize it and add expensive processing, you should implement some\ncaching mechanism yourself.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.value_omitted_from_data\">\n<span class=\"sig-name descname\"><span class=\"pre\">value_omitted_from_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">data</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">files</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.value_omitted_from_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Given <code class=\"docutils literal notranslate\"><span class=\"pre\">data</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">files</span></code> dictionaries and this widget's name,\nreturns whether or not there's data or files for the widget.</p>\n<p>Hasil metode mempengaruhi apakah atau tidak sebuah bidang di sebuah model formulir <a class=\"reference internal\" href=\"/id/5.2/topics/forms/modelforms/#topics-modelform-save\"><span class=\"std std-ref\">falls back to its default</span></a>.</p>\n<p>Special cases are <a class=\"reference internal\" href=\"#django.forms.CheckboxInput\" title=\"django.forms.CheckboxInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxInput</span></code></a>,\n<a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxSelectMultiple</span></code></a>, and\n<a class=\"reference internal\" href=\"#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a>, which always return\n<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> because an unchecked checkbox and unselected\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code> don't appear in the data of an HTML form\nsubmission, so it's unknown whether or not the user submitted a value.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.use_fieldset\">\n<span class=\"sig-name descname\"><span class=\"pre\">use_fieldset</span></span><a class=\"heading-anchor\" href=\"#django.forms.Widget.use_fieldset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An attribute to identify if the widget should be grouped in a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> with a <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> when rendered. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>\nbut is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> when the widget contains multiple <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input&gt;</span></code> tags such as\n<a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxSelectMultiple</span></code></a>,\n<a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a>,\n<a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a>,\n<a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code></a>, and\n<a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectDateWidget</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.use_required_attribute\">\n<span class=\"sig-name descname\"><span class=\"pre\">use_required_attribute</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">initial</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Widget.use_required_attribute\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Given a form field's <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> value, returns whether or not the\nwidget can be rendered with the <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> HTML attribute. Forms use\nthis method along with <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#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> and <a class=\"reference internal\" href=\"/id/5.2/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> to determine whether or not\nto display the <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> attribute for each field.</p>\n<p>By default, returns <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> for hidden widgets and <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>\notherwise. Special cases are <a class=\"reference internal\" href=\"#django.forms.FileInput\" title=\"django.forms.FileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileInput</span></code></a> and\n<a class=\"reference internal\" href=\"#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code></a>, which return <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> when\n<code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> is set, and <a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxSelectMultiple</span></code></a>,\nwhich always returns <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> because browser validation would require\nall checkboxes to be checked instead of at least one.</p>\n<p>Override this method in custom widgets that aren't compatible with\nbrowser validation. For example, a WSYSIWG text editor widget backed by\na hidden <code class=\"docutils literal notranslate\"><span class=\"pre\">textarea</span></code> element may want to always return <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> to\navoid browser validation on the hidden field.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"multiwidget\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code><a class=\"heading-anchor\" href=\"#multiwidget\"><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.MultiWidget\">\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\">MultiWidget</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widgets</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultiWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A widget that is composed of multiple widgets.\n<a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a> works hand in hand with the\n<a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a>.</p>\n<p><a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a> mempunyai satu argumen diwajibkan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiWidget.widgets\">\n<span class=\"sig-name descname\"><span class=\"pre\">widgets</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiWidget.widgets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An iterable containing the widgets needed. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MultiWidget</span><span class=\"p\">,</span> <span class=\"n\">TextInput</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">widget</span> <span class=\"o\">=</span> <span class=\"n\">MultiWidget</span><span class=\"p\">(</span><span class=\"n\">widgets</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">TextInput</span><span class=\"p\">,</span> <span class=\"n\">TextInput</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">render</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;paul&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&#39;&lt;input type=&quot;text&quot; name=&quot;name_0&quot; value=&quot;john&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;name_1&quot; value=&quot;paul&quot;&gt;&#39;</span>\n</code></pre></div>\n<p>You may provide a dictionary in order to specify custom suffixes for\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> attribute on each subwidget. In this case, for each\n<code class=\"docutils literal notranslate\"><span class=\"pre\">(key,</span> <span class=\"pre\">widget)</span></code> pair, the key will be appended to the <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> of the\nwidget in order to generate the attribute value. You may provide the\nempty string (<code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code>) for a single key, in order to suppress the suffix\nfor one widget. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">widget</span> <span class=\"o\">=</span> <span class=\"n\">MultiWidget</span><span class=\"p\">(</span><span class=\"n\">widgets</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">:</span> <span class=\"n\">TextInput</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last&quot;</span><span class=\"p\">:</span> <span class=\"n\">TextInput</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">widget</span><span class=\"o\">.</span><span class=\"n\">render</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;paul&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&#39;&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;john&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;name_last&quot; value=&quot;paul&quot;&gt;&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<p>Dan satu cara diwajibkan:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiWidget.decompress\">\n<span class=\"sig-name descname\"><span class=\"pre\">decompress</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.MultiWidget.decompress\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This method takes a single &quot;compressed&quot; value from the field and\nreturns a list of &quot;decompressed&quot; values. The input value can be\nassumed valid, but not necessarily non-empty.</p>\n<p>This method <strong>must be implemented</strong> by the subclass, and since the\nvalue may be empty, the implementation must be defensive.</p>\n<p>The rationale behind &quot;decompression&quot; is that it is necessary to &quot;split&quot;\nthe combined value of the form field into the values for each widget.</p>\n<p>An example of this is how <a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code></a> turns a\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> value into a list with date and time split\ninto two separate values:</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\">MultiWidget</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">SplitDateTimeWidget</span><span class=\"p\">(</span><span class=\"n\">MultiWidget</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">decompress</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">value</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(),</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">time</span><span class=\"p\">()]</span>\n        <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition admonition-tip\">\n<p class=\"admonition-title\">Tip</p>\n<p>Note that <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a> has a\ncomplementary method <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#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>\nwith the opposite responsibility - to combine cleaned values of\nall member fields into one.</p>\n</aside>\n</dd></dl>\n\n<p>Itu menyediakan beberapa konteks penyesuaian:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiWidget.get_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultiWidget.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>In addition to the <code class=\"docutils literal notranslate\"><span class=\"pre\">'widget'</span></code> key described in\n<a class=\"reference internal\" href=\"#django.forms.Widget.get_context\" title=\"django.forms.Widget.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Widget.get_context()</span></code></a>, <code class=\"docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code> adds a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">widget['subwidgets']</span></code> key.</p>\n<p>Ini dapat dilingkarkan dalam cetakan widget:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">subwidget</span> <span class=\"k\">in</span> <span class=\"nv\">widget.subwidgets</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"nv\">subwidget.template_name</span> <span class=\"k\">with</span> <span class=\"nv\">widget</span><span class=\"o\">=</span><span class=\"nv\">subwidget</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</dd></dl>\n\n<p>Here's an example widget which subclasses <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a> to display\na date with the day, month, and year in different select boxes. This widget\nis intended to be used with a <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> rather than\na <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a>, thus we have implemented\n<a class=\"reference internal\" href=\"#django.forms.Widget.value_from_datadict\" title=\"django.forms.Widget.value_from_datadict\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">value_from_datadict()</span></code></a>:</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\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">date</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DateSelectorWidget</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">MultiWidget</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=\"n\">attrs</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">days</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"n\">day</span><span class=\"p\">:</span> <span class=\"n\">day</span> <span class=\"k\">for</span> <span class=\"n\">day</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">32</span><span class=\"p\">)}</span>\n        <span class=\"n\">months</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"n\">month</span><span class=\"p\">:</span> <span class=\"n\">month</span> <span class=\"k\">for</span> <span class=\"n\">month</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">13</span><span class=\"p\">)}</span>\n        <span class=\"n\">years</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"n\">year</span><span class=\"p\">:</span> <span class=\"n\">year</span> <span class=\"k\">for</span> <span class=\"n\">year</span> <span class=\"ow\">in</span> <span class=\"p\">[</span><span class=\"mi\">2018</span><span class=\"p\">,</span> <span class=\"mi\">2019</span><span class=\"p\">,</span> <span class=\"mi\">2020</span><span class=\"p\">]}</span>\n        <span class=\"n\">widgets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"n\">attrs</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">days</span><span class=\"p\">),</span>\n            <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"n\">attrs</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">months</span><span class=\"p\">),</span>\n            <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"n\">attrs</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">years</span><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><span class=\"n\">widgets</span><span class=\"p\">,</span> <span class=\"n\">attrs</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">decompress</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"n\">date</span><span class=\"p\">):</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">day</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">month</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">year</span><span class=\"p\">]</span>\n        <span class=\"k\">elif</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">):</span>\n            <span class=\"n\">year</span><span class=\"p\">,</span> <span class=\"n\">month</span><span class=\"p\">,</span> <span class=\"n\">day</span> <span class=\"o\">=</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;-&quot;</span><span class=\"p\">)</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">day</span><span class=\"p\">,</span> <span class=\"n\">month</span><span class=\"p\">,</span> <span class=\"n\">year</span><span class=\"p\">]</span>\n        <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">value_from_datadict</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">files</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"p\">):</span>\n        <span class=\"n\">day</span><span class=\"p\">,</span> <span class=\"n\">month</span><span class=\"p\">,</span> <span class=\"n\">year</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">value_from_datadict</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">files</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"p\">)</span>\n        <span class=\"c1\"># DateField expects a single string that it can parse into a date.</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;</span><span class=\"si\">{}</span><span class=\"s2\">-</span><span class=\"si\">{}</span><span class=\"s2\">-</span><span class=\"si\">{}</span><span class=\"s2\">&quot;</span><span class=\"o\">.</span><span class=\"n\">format</span><span class=\"p\">(</span><span class=\"n\">year</span><span class=\"p\">,</span> <span class=\"n\">month</span><span class=\"p\">,</span> <span class=\"n\">day</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>The constructor creates several <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widgets in a list. The\n<code class=\"docutils literal notranslate\"><span class=\"pre\">super()</span></code> method uses this list to set up the widget.</p>\n<p>The required method <a class=\"reference internal\" href=\"#django.forms.MultiWidget.decompress\" title=\"django.forms.MultiWidget.decompress\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">decompress()</span></code></a> breaks up a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> value into the day, month, and year values corresponding\nto each widget. If an invalid date was selected, such as the non-existent\n30th February, the <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> passes this method a\nstring instead, so that needs parsing. The final <code class=\"docutils literal notranslate\"><span class=\"pre\">return</span></code> handles when\n<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, meaning we don't have any defaults for our\nsubwidgets.</p>\n<p>The default implementation of <a class=\"reference internal\" href=\"#django.forms.Widget.value_from_datadict\" title=\"django.forms.Widget.value_from_datadict\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">value_from_datadict()</span></code></a> returns a\nlist of values corresponding to each <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget</span></code>. This is appropriate when\nusing a <code class=\"docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code> with a <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a>. But\nsince we want to use this widget with a <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a>,\nwhich takes a single value, we have overridden this method. The\nimplementation here combines the data from the subwidgets into a string in\nthe format that <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> expects.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"built-in-widgets\">\n<span id=\"id4\"></span><h2>Widget pasang tetap<a class=\"heading-anchor\" href=\"#built-in-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django provides a representation of all the basic HTML widgets, plus some\ncommonly used groups of widgets in the <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.widgets</span></code> module,\nincluding <a class=\"reference internal\" href=\"#text-widgets\"><span class=\"std std-ref\">the input of text</span></a>, <a class=\"reference internal\" href=\"#selector-widgets\"><span class=\"std std-ref\">various checkboxes\nand selectors</span></a>, <a class=\"reference internal\" href=\"#file-upload-widgets\"><span class=\"std std-ref\">uploading files</span></a>,\nand <a class=\"reference internal\" href=\"#composite-widgets\"><span class=\"std std-ref\">handling of multi-valued input</span></a>.</p>\n<section id=\"widgets-handling-input-of-text\">\n<span id=\"text-widgets\"></span><h3>Widget menangani masukan dari teks<a class=\"heading-anchor\" href=\"#widgets-handling-input-of-text\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Widget ini membuat penggunaan dari unsur-unsur HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">input`</span> <span class=\"pre\">dan</span> <span class=\"pre\">``textarea</span></code>.</p>\n<section id=\"textinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TextInput</span></code><a class=\"heading-anchor\" href=\"#textinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TextInput\">\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\">TextInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.TextInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'text'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/text.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"numberinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code><a class=\"heading-anchor\" href=\"#numberinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.NumberInput\">\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\">NumberInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.NumberInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'number'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/number.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;number&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Beware that not all browsers support entering localized numbers in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">number</span></code> input types. Django itself avoids using them for fields having\ntheir <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">localize</span></code></a> property set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"emailinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">EmailInput</span></code><a class=\"heading-anchor\" href=\"#emailinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.EmailInput\">\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\">EmailInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.EmailInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'email'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/email.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;email&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"urlinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">URLInput</span></code><a class=\"heading-anchor\" href=\"#urlinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.URLInput\">\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\">URLInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.URLInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'url'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/url.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;url&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"colorinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ColorInput</span></code><a class=\"heading-anchor\" href=\"#colorinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ColorInput\">\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\">ColorInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.ColorInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'color'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>:<code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/color.html'</span></code></p></li>\n<li><p>Renders as: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;color&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"searchinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">SearchInput</span></code><a class=\"heading-anchor\" href=\"#searchinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SearchInput\">\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\">SearchInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.SearchInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'search'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/search.html'</span></code></p></li>\n<li><p>Renders as: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;search&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"telinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TelInput</span></code><a class=\"heading-anchor\" href=\"#telinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TelInput\">\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\">TelInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.TelInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'tel'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/tel.html'</span></code></p></li>\n<li><p>Renders as: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;tel&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Browsers perform no client-side validation by default because telephone\nnumber formats vary so much around the world. You can add some by setting\n<code class=\"docutils literal notranslate\"><span class=\"pre\">pattern</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">minlength</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">maxlength</span></code> in the <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Widget.attrs</span></code></a>\nargument.</p>\n<p>Additionally, you can add server-side validation to your form field with a\nvalidator like <a class=\"reference internal\" href=\"/id/5.2/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> or via\nthird-party packages, such as <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/django-phonenumber-field/\">django-phonenumber-field</a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"passwordinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">PasswordInput</span></code><a class=\"heading-anchor\" href=\"#passwordinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.PasswordInput\">\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\">PasswordInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.PasswordInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'password'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/password.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;password&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Mengambil satu argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.PasswordInput.render_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">render_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.PasswordInput.render_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Determines whether the widget will have a value filled in when the\nform is re-displayed after a validation error (default is <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=\"hiddeninput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">HiddenInput</span></code><a class=\"heading-anchor\" href=\"#hiddeninput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.HiddenInput\">\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\">HiddenInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.HiddenInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'hidden'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/hidden.html'</span></code></p></li>\n<li><p>Dibangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;hidden&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Note that there also is a <a class=\"reference internal\" href=\"#django.forms.MultipleHiddenInput\" title=\"django.forms.MultipleHiddenInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleHiddenInput</span></code></a> widget that\nencapsulates a set of hidden input elements.</p>\n</dd></dl>\n\n</section>\n<section id=\"dateinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DateInput</span></code><a class=\"heading-anchor\" href=\"#dateinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateInput\">\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\">DateInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'text'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/date.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Mengambil argumen sama seperti <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>, dengan satu atau lebih argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateInput.format\">\n<span class=\"sig-name descname\"><span class=\"pre\">format</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateInput.format\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bentuk dimana nilaiinisial bidang ini akan ditampilkan.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">format</span></code> argument is provided, the default format is the first\nformat found in <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> and respects\n<a class=\"reference internal\" href=\"/id/5.2/topics/i18n/formatting/\"><span class=\"doc\">Bentuk lokalisasi</span></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">%U</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">%W</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">%j</span></code> formats are not\nsupported by this widget.</p>\n</dd></dl>\n\n</section>\n<section id=\"datetimeinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeInput</span></code><a class=\"heading-anchor\" href=\"#datetimeinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeInput\">\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\">DateTimeInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateTimeInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'text'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/datetime.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Mengambil argumen sama seperti <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>, dengan satu atau lebih argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeInput.format\">\n<span class=\"sig-name descname\"><span class=\"pre\">format</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateTimeInput.format\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bentuk dimana nilaiinisial bidang ini akan ditampilkan.</p>\n</dd></dl>\n\n<p>If no <code class=\"docutils literal notranslate\"><span class=\"pre\">format</span></code> argument is provided, the default format is the first\nformat found in <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a> and respects\n<a class=\"reference internal\" href=\"/id/5.2/topics/i18n/formatting/\"><span class=\"doc\">Bentuk lokalisasi</span></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">%U</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">%W</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">%j</span></code> formats are not\nsupported by this widget.</p>\n<p>By default, the microseconds part of the time value is always set to <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>.\nIf microseconds are required, use a subclass with the\n<a class=\"reference internal\" href=\"#django.forms.Widget.supports_microseconds\" title=\"django.forms.Widget.supports_microseconds\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_microseconds</span></code></a> attribute set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"timeinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TimeInput</span></code><a class=\"heading-anchor\" href=\"#timeinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeInput\">\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\">TimeInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.TimeInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'text'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/time.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Mengambil argumen sama seperti <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>, dengan satu atau lebih argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeInput.format\">\n<span class=\"sig-name descname\"><span class=\"pre\">format</span></span><a class=\"heading-anchor\" href=\"#django.forms.TimeInput.format\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bentuk dimana nilaiinisial bidang ini akan ditampilkan.</p>\n</dd></dl>\n\n<p>Jika tidak ada argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">format</span></code> disediakan, bentuk awalan adalah bentuk pertama ditemukan dalam <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a> dan menghormati <a class=\"reference internal\" href=\"/id/5.2/topics/i18n/formatting/\"><span class=\"doc\">Bentuk lokalisasi</span></a>.</p>\n<p>Untuk perlakuan dari mikro detik, lihat <a class=\"reference internal\" href=\"#django.forms.DateTimeInput\" title=\"django.forms.DateTimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeInput</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"textarea\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Textarea</span></code><a class=\"heading-anchor\" href=\"#textarea\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Textarea\">\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\">Textarea</span></span><a class=\"heading-anchor\" href=\"#django.forms.Textarea\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/textarea.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;textarea&gt;...&lt;/textarea&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"selector-and-checkbox-widgets\">\n<span id=\"selector-widgets\"></span><h3>Widget pemilih dan kotak centang<a class=\"heading-anchor\" href=\"#selector-and-checkbox-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Widget ini membuat penggunaan dari unsur-unsur HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;&gt;</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;radio&quot;&gt;</span></code>.</p>\n<p>Widgets that render multiple choices have an <code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code> attribute\nthat specifies the template used to render each choice. For example, for the\n<a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> widget, <code class=\"docutils literal notranslate\"><span class=\"pre\">select_option.html</span></code> renders the <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> for a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code>.</p>\n<section id=\"checkboxinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">CheckboxInput</span></code><a class=\"heading-anchor\" href=\"#checkboxinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CheckboxInput\">\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\">CheckboxInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.CheckboxInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_type</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'checkbox'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/checkbox.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>Mengambil satu argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CheckboxInput.check_test\">\n<span class=\"sig-name descname\"><span class=\"pre\">check_test</span></span><a class=\"heading-anchor\" href=\"#django.forms.CheckboxInput.check_test\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A callable that takes the value of the <code class=\"docutils literal notranslate\"><span class=\"pre\">CheckboxInput</span></code> and returns\n<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if the checkbox should be checked for that value.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"select\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Select</span></code><a class=\"heading-anchor\" href=\"#select\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Select\">\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\">Select</span></span><a class=\"heading-anchor\" href=\"#django.forms.Select\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select.html'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select_option.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;&lt;option</span> <span class=\"pre\">...&gt;...&lt;/select&gt;</span></code></p></li>\n</ul>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Select.choices\">\n<span class=\"sig-name descname\"><span class=\"pre\">choices</span></span><a class=\"heading-anchor\" href=\"#django.forms.Select.choices\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This attribute is optional when the form field does not have a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> attribute. If it does, it will override anything you set\nhere when the attribute is updated on the <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"nullbooleanselect\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanSelect</span></code><a class=\"heading-anchor\" href=\"#nullbooleanselect\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.NullBooleanSelect\">\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\">NullBooleanSelect</span></span><a class=\"heading-anchor\" href=\"#django.forms.NullBooleanSelect\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select.html'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select_option.html'</span></code></p></li>\n</ul>\n<p>Pilih widget dengan pilihan  'Tidak dikenal', 'Ya' dan 'Tidak'</p>\n</dd></dl>\n\n</section>\n<section id=\"selectmultiple\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code><a class=\"heading-anchor\" href=\"#selectmultiple\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SelectMultiple\">\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\">SelectMultiple</span></span><a class=\"heading-anchor\" href=\"#django.forms.SelectMultiple\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select.html'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select_option.html'</span></code></p></li>\n</ul>\n<p>Mirip pada <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a>, tetai mengizinkan banyak pemilihan: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;...&lt;/select&gt;</span></code></p>\n</dd></dl>\n\n</section>\n<section id=\"radioselect\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code><a class=\"heading-anchor\" href=\"#radioselect\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RadioSelect\">\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\">RadioSelect</span></span><a class=\"heading-anchor\" href=\"#django.forms.RadioSelect\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/radio.html'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/radio_option.html'</span></code></p></li>\n</ul>\n<p>Similar to <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a>, but rendered as a list of radio buttons within\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> tags:</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\">div</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;...&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n  ...\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>For more granular control over the generated markup, you can loop over the\nradio buttons in the template. Assuming a form <code class=\"docutils literal notranslate\"><span class=\"pre\">myform</span></code> with a field\n<code class=\"docutils literal notranslate\"><span class=\"pre\">beatles</span></code> that uses a <code class=\"docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code> as its widget:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">myform.beatles.label</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">radio</span> <span class=\"k\">in</span> <span class=\"nv\">myform.beatles</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;myradio&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"cp\">{{</span> <span class=\"nv\">radio</span> <span class=\"cp\">}}</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Ini akan membangkitkan HTML berikut:</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\">fieldset</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>Radio buttons<span class=\"p\">&lt;/</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;myradio&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_0&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_0&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;john&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span> John<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;myradio&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_1&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_1&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;paul&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span> Paul<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;myradio&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_2&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_2&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;george&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span> George<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;myradio&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_3&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_3&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;ringo&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span> Ringo<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>That included the <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> tags. To get more granular, you can use each\nradio button's <code class=\"docutils literal notranslate\"><span class=\"pre\">tag</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">choice_label</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">id_for_label</span></code> attributes.\nFor example, this template...</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">myform.beatles.label</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">radio</span> <span class=\"k\">in</span> <span class=\"nv\">myform.beatles</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">radio.id_for_label</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"cp\">{{</span> <span class=\"nv\">radio.choice_label</span> <span class=\"cp\">}}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">span</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">radio.tag</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">span</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>...akan menghasilkan HTML berikut:</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\">fieldset</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>Radio buttons<span class=\"p\">&lt;/</span><span class=\"nt\">legend</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_0&quot;</span><span class=\"p\">&gt;</span>\n        John\n        <span class=\"p\">&lt;</span><span class=\"nt\">span</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_0&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;john&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">span</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_1&quot;</span><span class=\"p\">&gt;</span>\n        Paul\n        <span class=\"p\">&lt;</span><span class=\"nt\">span</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_1&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;paul&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">span</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_2&quot;</span><span class=\"p\">&gt;</span>\n        George\n        <span class=\"p\">&lt;</span><span class=\"nt\">span</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_2&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;george&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">span</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_3&quot;</span><span class=\"p\">&gt;</span>\n        Ringo\n        <span class=\"p\">&lt;</span><span class=\"nt\">span</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_beatles_3&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;beatles&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;radio&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;ringo&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">span</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">fieldset</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>If you decide not to loop over the radio buttons -- e.g., if your template\nincludes <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">myform.beatles</span> <span class=\"pre\">}}</span></code> -- they'll be output in a <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> with\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> tags, as above.</p>\n<p>The outer <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> container receives the <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attribute of the widget,\nif defined, or <a class=\"reference internal\" href=\"/id/5.2/ref/forms/api/#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.auto_id</span></code></a> otherwise.</p>\n<p>When looping over the radio buttons, the <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">input</span></code> tags include\n<code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attributes, respectively. Each radio button has an\n<code class=\"docutils literal notranslate\"><span class=\"pre\">id_for_label</span></code> attribute to output the element's ID.</p>\n</dd></dl>\n\n</section>\n<section id=\"checkboxselectmultiple\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">CheckboxSelectMultiple</span></code><a class=\"heading-anchor\" href=\"#checkboxselectmultiple\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CheckboxSelectMultiple\">\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\">CheckboxSelectMultiple</span></span><a class=\"heading-anchor\" href=\"#django.forms.CheckboxSelectMultiple\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/checkbox_select.html'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">option_template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/checkbox_option.html'</span></code></p></li>\n</ul>\n<p>Mirip pada <a class=\"reference internal\" href=\"#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a>, tetapi dibangun sebagai daftar dari kotak centang:</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\">div</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;checkbox&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;...&quot;</span> <span class=\"p\">&gt;&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n  ...\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>The outer <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> container receives the <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attribute of the widget,\nif defined, or <a class=\"reference internal\" href=\"/id/5.2/ref/forms/api/#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.auto_id</span></code></a> otherwise.</p>\n</dd></dl>\n\n<p>Like <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a>, you can loop over the individual checkboxes for the\nwidget's choices. Unlike <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a>, the checkboxes won't include the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> HTML attribute if the field is required because browser validation\nwould require all checkboxes to be checked instead of at least one.</p>\n<p>When looping over the checkboxes, the <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">input</span></code> tags include\n<code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attributes, respectively. Each checkbox has an\n<code class=\"docutils literal notranslate\"><span class=\"pre\">id_for_label</span></code> attribute to output the element's ID.</p>\n</section>\n</section>\n<section id=\"file-upload-widgets\">\n<span id=\"id5\"></span><h3>Widget unggah berkas<a class=\"heading-anchor\" href=\"#file-upload-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"fileinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">FileInput</span></code><a class=\"heading-anchor\" href=\"#fileinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FileInput\">\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\">FileInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.FileInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/file.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;file&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"clearablefileinput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code><a class=\"heading-anchor\" href=\"#clearablefileinput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ClearableFileInput\">\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\">ClearableFileInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.ClearableFileInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/clearable_file_input.html'</span></code></p></li>\n<li><p>Membangun sebagai: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;file&quot;</span> <span class=\"pre\">...&gt;</span></code> dengan masukan kotak centang tambahan untuk membersihkan nilai bidang, jika bidang tidak diwajibkan dan mempunyai data inisial.</p></li>\n</ul>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"composite-widgets\">\n<span id=\"id6\"></span><h3>Widget campuran<a class=\"heading-anchor\" href=\"#composite-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"multiplehiddeninput\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleHiddenInput</span></code><a class=\"heading-anchor\" href=\"#multiplehiddeninput\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultipleHiddenInput\">\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\">MultipleHiddenInput</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultipleHiddenInput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/multiple_hidden.html'</span></code></p></li>\n<li><p>Membangun sebagai: banyak etiket <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;hidden&quot;</span> <span class=\"pre\">...&gt;</span></code></p></li>\n</ul>\n<p>A widget that handles multiple hidden widgets for fields that have a list\nof values.</p>\n</dd></dl>\n\n</section>\n<section id=\"splitdatetimewidget\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code><a class=\"heading-anchor\" href=\"#splitdatetimewidget\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeWidget\">\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\">SplitDateTimeWidget</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/splitdatetime.html'</span></code></p></li>\n</ul>\n<p>Wrapper (using <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a>) around two widgets: <a class=\"reference internal\" href=\"#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateInput</span></code></a>\nfor the date, and <a class=\"reference internal\" href=\"#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeInput</span></code></a> for the time. Must be used with\n<a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.SplitDateTimeField\" title=\"django.forms.SplitDateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeField</span></code></a> rather than <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateTimeField\" title=\"django.forms.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code> mempunyai beberapa argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeWidget.date_format\">\n<span class=\"sig-name descname\"><span class=\"pre\">date_format</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeWidget.date_format\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mirip ke <a class=\"reference internal\" href=\"#django.forms.DateInput.format\" title=\"django.forms.DateInput.format\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">DateInput.format</span></code></a></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeWidget.time_format\">\n<span class=\"sig-name descname\"><span class=\"pre\">time_format</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeWidget.time_format\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mirip ke <a class=\"reference internal\" href=\"#django.forms.TimeInput.format\" title=\"django.forms.TimeInput.format\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">TimeInput.format</span></code></a></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeWidget.date_attrs\">\n<span class=\"sig-name descname\"><span class=\"pre\">date_attrs</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeWidget.date_attrs\"><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.SplitDateTimeWidget.time_attrs\">\n<span class=\"sig-name descname\"><span class=\"pre\">time_attrs</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeWidget.time_attrs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Similar to <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Widget.attrs</span></code></a>. A dictionary containing HTML\nattributes to be set on the rendered <a class=\"reference internal\" href=\"#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateInput</span></code></a> and\n<a class=\"reference internal\" href=\"#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeInput</span></code></a> widgets, respectively. If these attributes aren't\nset, <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Widget.attrs</span></code></a> is used instead.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"splithiddendatetimewidget\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitHiddenDateTimeWidget</span></code><a class=\"heading-anchor\" href=\"#splithiddendatetimewidget\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitHiddenDateTimeWidget\">\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\">SplitHiddenDateTimeWidget</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitHiddenDateTimeWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/splithiddendatetime.html'</span></code></p></li>\n</ul>\n<p>Mirip pada <a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code></a>, tetapi menggunakan <a class=\"reference internal\" href=\"#django.forms.HiddenInput\" title=\"django.forms.HiddenInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HiddenInput</span></code></a> untuk kedua tanggal dan waktu.</p>\n</dd></dl>\n\n</section>\n<section id=\"selectdatewidget\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">SelectDateWidget</span></code><a class=\"heading-anchor\" href=\"#selectdatewidget\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SelectDateWidget\">\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\">SelectDateWidget</span></span><a class=\"heading-anchor\" href=\"#django.forms.SelectDateWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/widgets/select_date.html'</span></code></p></li>\n</ul>\n<p>Pembungkus disekitar tiga widget <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a>: satu untuk bulan, hari dan tahun.</p>\n<p>Mengambil beberapa argumen pilihan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SelectDateWidget.years\">\n<span class=\"sig-name descname\"><span class=\"pre\">years</span></span><a class=\"heading-anchor\" href=\"#django.forms.SelectDateWidget.years\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An optional list/tuple of years to use in the &quot;year&quot; select box.\nThe default is a list containing the current year and the next 9 years.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SelectDateWidget.months\">\n<span class=\"sig-name descname\"><span class=\"pre\">months</span></span><a class=\"heading-anchor\" href=\"#django.forms.SelectDateWidget.months\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An optional dict of months to use in the &quot;months&quot; select box.</p>\n<p>The keys of the dict correspond to the month number (1-indexed) and\nthe values are the displayed months:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">MONTHS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"mi\">1</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;jan&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">2</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;feb&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">3</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;mar&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">4</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;apr&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">5</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;may&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">6</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;jun&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">7</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;jul&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">8</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;aug&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">9</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;sep&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">10</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;oct&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">11</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;nov&quot;</span><span class=\"p\">),</span>\n    <span class=\"mi\">12</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;dec&quot;</span><span class=\"p\">),</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.SelectDateWidget.empty_label\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.SelectDateWidget.empty_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jika <a class=\"reference internal\" href=\"/id/5.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> tidak diwajibkan, <a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectDateWidget</span></code></a> akan memiliki pilihan kosong pada atas dari daftar (yaitu <code class=\"docutils literal notranslate\"><span class=\"pre\">---</span></code> secara awalan). Anda dapat merubah tekas dari label ini dengan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> dapat berupa sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">string</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code>. Ketika sebuah string digunakan, semua kotak-kotak pilihan akan setiapnya memiliki sebuah pilihan kosong dengan label ini. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> adalah sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari 3 unsur string, kotak-kotak pilihan akan memiliki label penyesuaian mereka sendiri. Label harus dalam urutan ini <code class=\"docutils literal notranslate\"><span class=\"pre\">('year_label',</span> <span class=\"pre\">'month_label',</span> <span class=\"pre\">'day_label')</span></code>.</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"c1\"># A custom empty label with string</span>\n<span class=\"n\">field1</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\">widget</span><span class=\"o\">=</span><span class=\"n\">SelectDateWidget</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\"># A custom empty label with tuple</span>\n<span class=\"n\">field1</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span>\n    <span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">SelectDateWidget</span><span class=\"p\">(</span>\n        <span class=\"n\">empty_label</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"s2\">&quot;Choose Year&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Choose Month&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Choose Day&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n</section>","rootId":"module-django.forms.widgets","toc":[{"title":"Menentukan widget","anchor":"specifying-widgets","children":[]},{"title":"Mengatur argumen untuk widget","anchor":"setting-arguments-for-widgets","children":[]},{"title":"Widget warisan dari widget Select","anchor":"widgets-inheriting-from-the-select-widget","children":[]},{"title":"Menyesuaikan instance widget","anchor":"customizing-widget-instances","children":[{"title":"Menggayakan instance widget","anchor":"styling-widget-instances","children":[]},{"title":"Menggayakan kelas widget","anchor":"styling-widget-classes","children":[]}]},{"title":"Kelas-kelas widget dasar","anchor":"base-widget-classes","children":[{"title":"Widget","anchor":"widget","children":[]},{"title":"MultiWidget","anchor":"multiwidget","children":[]}]},{"title":"Widget pasang tetap","anchor":"built-in-widgets","children":[{"title":"Widget menangani masukan dari teks","anchor":"widgets-handling-input-of-text","children":[{"title":"TextInput","anchor":"textinput","children":[]},{"title":"NumberInput","anchor":"numberinput","children":[]},{"title":"EmailInput","anchor":"emailinput","children":[]},{"title":"URLInput","anchor":"urlinput","children":[]},{"title":"ColorInput","anchor":"colorinput","children":[]},{"title":"SearchInput","anchor":"searchinput","children":[]},{"title":"TelInput","anchor":"telinput","children":[]},{"title":"PasswordInput","anchor":"passwordinput","children":[]},{"title":"HiddenInput","anchor":"hiddeninput","children":[]},{"title":"DateInput","anchor":"dateinput","children":[]},{"title":"DateTimeInput","anchor":"datetimeinput","children":[]},{"title":"TimeInput","anchor":"timeinput","children":[]},{"title":"Textarea","anchor":"textarea","children":[]}]},{"title":"Widget pemilih dan kotak centang","anchor":"selector-and-checkbox-widgets","children":[{"title":"CheckboxInput","anchor":"checkboxinput","children":[]},{"title":"Select","anchor":"select","children":[]},{"title":"NullBooleanSelect","anchor":"nullbooleanselect","children":[]},{"title":"SelectMultiple","anchor":"selectmultiple","children":[]},{"title":"RadioSelect","anchor":"radioselect","children":[]},{"title":"CheckboxSelectMultiple","anchor":"checkboxselectmultiple","children":[]}]},{"title":"Widget unggah berkas","anchor":"file-upload-widgets","children":[{"title":"FileInput","anchor":"fileinput","children":[]},{"title":"ClearableFileInput","anchor":"clearablefileinput","children":[]}]},{"title":"Widget campuran","anchor":"composite-widgets","children":[{"title":"MultipleHiddenInput","anchor":"multiplehiddeninput","children":[]},{"title":"SplitDateTimeWidget","anchor":"splitdatetimewidget","children":[]},{"title":"SplitHiddenDateTimeWidget","anchor":"splithiddendatetimewidget","children":[]},{"title":"SelectDateWidget","anchor":"selectdatewidget","children":[]}]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/5.2/ref/"},{"docname":"ref/forms/index","title":"Formulir","url":"/id/5.2/ref/forms/"}],"prev":{"docname":"ref/forms/renderers","title":"Formulir membangun API","url":"/id/5.2/ref/forms/renderers/"},"next":{"docname":"ref/forms/validation","title":"Pengesahan formulir dan bidang","url":"/id/5.2/ref/forms/validation/"},"formats":{"html":"/id/5.2/ref/forms/widgets/","markdown":"/id/5.2/ref/forms/widgets.md","json":"/id/5.2/ref/forms/widgets.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/forms/widgets.txt","official":"https://docs.djangoproject.com/id/5.2/ref/forms/widgets/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}