{"title":"Widgets","version":"6.1","locale":"sv","docname":"ref/forms/widgets","url":"/sv/6.1/ref/forms/widgets/","canonical":"https://djangodocs.dev/sv/6.1/ref/forms/widgets/","summary":"En widget är Djangos representation av ett HTML-inmatningselement. Widgeten hanterar rendering av HTML och extrahering av data från en GET/POST-ordbok som…","html":"<span id=\"widgets\"></span><h1>Widgets<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>En widget är Djangos representation av ett HTML-inmatningselement. Widgeten hanterar rendering av HTML och extrahering av data från en GET/POST-ordbok som motsvarar widgeten.</p>\n<p>Den HTML som genereras av de inbyggda widgetarna använder HTML5-syntax och riktar sig till <code class=\"docutils literal notranslate\">&lt;!DOCTYPE html&gt;</code>. Exempelvis används booleska attribut som <code class=\"docutils literal notranslate\">checked</code> i stället för XHTML-stilen <code class=\"docutils literal notranslate\">checked='checked'</code>.</p>\n<aside class=\"admonition admonition-tip\" role=\"note\">\n<p class=\"admonition-title\">Tips</p>\n<p>Widgets ska inte förväxlas med <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/\"><span class=\"doc\">formulärsfält</span></a>. Formulärfält hanterar logiken för validering av indata och används direkt i mallar. Widgets hanterar rendering av HTML-formulärets inmatningselement på webbsidan och extrahering av inskickade rådata. Widgets behöver dock <a class=\"reference internal\" href=\"#widget-to-field\"><span class=\"std std-ref\">assigned</span></a> till formulärfält.</p>\n</aside>\n<section id=\"specifying-widgets\">\n<span id=\"widget-to-field\"></span><h2>Ange widgetar<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>När du anger ett fält i ett formulär kommer Django att använda en standardwidget som är lämplig för den typ av data som ska visas. För att ta reda på vilken widget som används för vilket fält, se dokumentationen om <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#built-in-fields\"><span class=\"std std-ref\">Inbyggda Field-klasser</span></a>.</p>\n<p>Men om du vill använda en annan widget för ett fält kan du använda argumentet <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.Field.widget\" title=\"django.forms.Field.widget\"><code class=\"xref py py-attr docutils literal notranslate\">widget</code></a> i fältdefinitionen. Till exempel:</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=\"nn\">django</span> <span class=\"kn\">import</span> forms\n\n\n<span class=\"k\">class</span> <span class=\"nc\">CommentForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">()</span>\n    url <span class=\"o\">=</span> forms<span class=\"o\">.</span>URLField<span class=\"p\">()</span>\n    comment <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">(</span>widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>Textarea<span class=\"p\">)</span>\n</code></pre></div>\n<p>Detta skulle ange ett formulär med en kommentar som använder en större <a class=\"reference internal\" href=\"#django.forms.Textarea\" title=\"django.forms.Textarea\"><code class=\"xref py py-class docutils literal notranslate\">Textarea</code></a>-widget i stället för standardwidgeten <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>.</p>\n</section>\n<section id=\"setting-arguments-for-widgets\">\n<h2>Ställa in argument för widgets<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>Många widgetar har valfria extra argument; de kan anges när widgeten definieras på fältet. I följande exempel anges attributet <a class=\"reference internal\" href=\"#django.forms.SelectDateWidget.years\" title=\"django.forms.SelectDateWidget.years\"><code class=\"xref py py-attr docutils literal notranslate\">years</code></a> för en <a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\">SelectDateWidget</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=\"nn\">django</span> <span class=\"kn\">import</span> forms\n\nBIRTH_YEAR_CHOICES <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>\nFAVORITE_COLORS_CHOICES <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=\"nc\">SimpleForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    birth_year <span class=\"o\">=</span> forms<span class=\"o\">.</span>DateField<span class=\"p\">(</span>\n        widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>SelectDateWidget<span class=\"p\">(</span>years<span class=\"o\">=</span>BIRTH_YEAR_CHOICES<span class=\"p\">)</span>\n    <span class=\"p\">)</span>\n    favorite_colors <span class=\"o\">=</span> forms<span class=\"o\">.</span>MultipleChoiceField<span class=\"p\">(</span>\n        required<span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n        widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>CheckboxSelectMultiple<span class=\"p\">,</span>\n        choices<span class=\"o\">=</span>FAVORITE_COLORS_CHOICES<span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Se <span class=\"xref std std-ref\">inbyggda widgetar</span> för mer information om vilka widgetar som finns tillgängliga och vilka argument de accepterar.</p>\n</section>\n<section id=\"customizing-widget-instances\">\n<h2>Anpassa widgetinstanser<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>När Django renderar en widget som HTML, renderar den bara mycket minimal markup - Django lägger inte till klassnamn eller andra widgetspecifika attribut. Detta innebär till exempel att alla <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>-widgets kommer att se likadana ut på dina webbsidor.</p>\n<p>Det finns två sätt att anpassa widgetar: <a class=\"reference internal\" href=\"#styling-widget-instances\"><span class=\"std std-ref\">per widget instance</span></a> och <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>Styling av widgetinstanser<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>Om du vill att en widgetinstans ska se annorlunda ut än en annan måste du ange ytterligare attribut när widgetobjektet instansieras och tilldelas ett formulärfält (och kanske lägga till några regler i dina CSS-filer).</p>\n<p>Ta till exempel följande formulär:</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=\"nn\">django</span> <span class=\"kn\">import</span> forms\n\n\n<span class=\"k\">class</span> <span class=\"nc\">CommentForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">()</span>\n    url <span class=\"o\">=</span> forms<span class=\"o\">.</span>URLField<span class=\"p\">()</span>\n    comment <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">()</span>\n</code></pre></div>\n<p>Detta formulär kommer att innehålla <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>-widgetar för namn- och kommentarsfälten, och en <a class=\"reference internal\" href=\"#django.forms.URLInput\" title=\"django.forms.URLInput\"><code class=\"xref py py-class docutils literal notranslate\">URLInput</code></a>-widget för url-fältet. Varje widget har standardrendering - ingen CSS-klass, inga extra attribut:</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>f <span class=\"o\">=</span> CommentForm<span class=\"p\">(</span>auto_id<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>f<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>På en riktig webbsida vill du förmodligen anpassa detta. Du kanske vill ha ett större inmatningselement för kommentaren, och du kanske vill att widgeten ”name” ska ha någon speciell CSS-klass. Det är också möjligt att ange attributet ’type’ för att använda en annan HTML5-ingångstyp. För att göra detta använder du argumentet <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">Widget.attrs</code></a> när du skapar widgeten:</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=\"nc\">CommentForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">(</span>widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>TextInput<span class=\"p\">(</span>attrs<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    url <span class=\"o\">=</span> forms<span class=\"o\">.</span>URLField<span class=\"p\">()</span>\n    comment <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">(</span>widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>TextInput<span class=\"p\">(</span>attrs<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>Du kan också ändra en widget i formulärdefinitionen:</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=\"nc\">CommentForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">()</span>\n    url <span class=\"o\">=</span> forms<span class=\"o\">.</span>URLField<span class=\"p\">()</span>\n    comment <span class=\"o\">=</span> forms<span class=\"o\">.</span>CharField<span class=\"p\">()</span>\n\n    name<span class=\"o\">.</span>widget<span class=\"o\">.</span>attrs<span class=\"o\">.</span>update<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    comment<span class=\"o\">.</span>widget<span class=\"o\">.</span>attrs<span class=\"o\">.</span>update<span class=\"p\">(</span>size<span class=\"o\">=</span><span class=\"s2\">&quot;40&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om fältet inte deklareras direkt i formuläret (t.ex. fält i modellformulär) kan du använda attributet <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/api/#django.forms.Form.fields\" title=\"django.forms.Form.fields\"><code class=\"xref py py-attr docutils literal notranslate\">Form.fields</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=\"nc\">CommentForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>ModelForm<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<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>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span>fields<span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span>widget<span class=\"o\">.</span>attrs<span class=\"o\">.</span>update<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>fields<span class=\"p\">[</span><span class=\"s2\">&quot;comment&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span>widget<span class=\"o\">.</span>attrs<span class=\"o\">.</span>update<span class=\"p\">(</span>size<span class=\"o\">=</span><span class=\"s2\">&quot;40&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Django kommer då att inkludera de extra attributen i den återgivna utdata:</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>f <span class=\"o\">=</span> CommentForm<span class=\"p\">(</span>auto_id<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>f<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>Du kan också ställa in HTML <code class=\"docutils literal notranslate\">id</code> med hjälp av <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">attrs</code></a>. Se <a class=\"reference internal\" href=\"/sv/6.1/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\">BoundField.id_for_label</code></a> för ett exempel.</p>\n</section>\n<section id=\"styling-widget-classes\">\n<span id=\"id2\"></span><h3>Styling av widgetklasser<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>Med widgets är det möjligt att lägga till tillgångar (<code class=\"docutils literal notranslate\">css</code> och <code class=\"docutils literal notranslate\">javascript</code>) och mer djupgående anpassa deras utseende och beteende.</p>\n<p>I ett nötskal måste du underklassa widgeten och antingen <a class=\"reference internal\" href=\"/sv/6.1/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">definiera en ”Media” inre klass</span></a> eller <a class=\"reference internal\" href=\"/sv/6.1/topics/forms/media/#dynamic-property\"><span class=\"std std-ref\">skapa en ”media” egenskap</span></a>.</p>\n<p>Dessa metoder kräver lite avancerad Python-programmering och beskrivs i detalj i ämnesguiden <a class=\"reference internal\" href=\"/sv/6.1/topics/forms/media/\"><span class=\"doc\">Form Assets</span></a>.</p>\n</section>\n</section>\n<section id=\"base-widget-classes\">\n<span id=\"id3\"></span><h2>Klasser för baswidgetar<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>Baswidgetklasserna <a class=\"reference internal\" href=\"#django.forms.Widget\" title=\"django.forms.Widget\"><code class=\"xref py py-class docutils literal notranslate\">Widget</code></a> och <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\">MultiWidget</code></a> är underklasser till alla <a class=\"reference internal\" href=\"#built-in-widgets\"><span class=\"std std-ref\">inbyggda widgetar</span></a> och kan fungera som en grund för anpassade widgetar.</p>\n<section id=\"widget\">\n<h3><code class=\"docutils literal notranslate\">Widget</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\">class</span> </em><span class=\"sig-name descname\">Widget</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">attrs<span class=\"o\">=</span><span class=\"default_value\">None</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>Den här abstrakta klassen kan inte renderas, men tillhandahåller grundattributet <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">attrs</code></a>. Du kan också implementera eller åsidosätta metoden <a class=\"reference internal\" href=\"#django.forms.Widget.render\" title=\"django.forms.Widget.render\"><code class=\"xref py py-meth docutils literal notranslate\">render()</code></a> i anpassade widgetar.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Widget.attrs\">\n<span class=\"sig-name descname\">attrs</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>En ordlista som innehåller HTML-attribut som ska ställas in på den renderade widgeten.</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=\"nn\">django</span> <span class=\"kn\">import</span> forms\n<span class=\"gp\">&gt;&gt;&gt; </span>name <span class=\"o\">=</span> forms<span class=\"o\">.</span>TextInput<span class=\"p\">(</span>attrs<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>name<span class=\"o\">.</span>render<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>Om du tilldelar ett värde av <code class=\"docutils literal notranslate\">True</code> eller <code class=\"docutils literal notranslate\">False</code> till ett attribut, kommer det att återges som ett HTML5 booleskt attribut:</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>name <span class=\"o\">=</span> forms<span class=\"o\">.</span>TextInput<span class=\"p\">(</span>attrs<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>name<span class=\"o\">.</span>render<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>name <span class=\"o\">=</span> forms<span class=\"o\">.</span>TextInput<span class=\"p\">(</span>attrs<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>name<span class=\"o\">.</span>render<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\">supports_microseconds</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>Ett attribut som har standardvärdet <code class=\"docutils literal notranslate\">True</code>. Om det sätts till <code class=\"docutils literal notranslate\">False</code> kommer mikrosekunderna i värdena <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> och <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.time\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">time</code></a> att sättas till <code class=\"docutils literal notranslate\">0</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\">format_value</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">value</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>Rensar och returnerar ett värde för användning i widgetmallen. <code class=\"docutils literal notranslate\">värde</code> garanteras inte vara giltig indata, därför bör implementeringar av underklasser programmeras defensivt.</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\">get_context</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">value</em>, <em class=\"sig-param\">attrs</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>Returnerar en ordbok med värden som ska användas vid rendering av widgetmallen. Som standard innehåller ordboken en enda nyckel, <code class=\"docutils literal notranslate\">'widget'</code>, som är en ordboksrepresentation av widgeten som innehåller följande nycklar:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">'namn'</code>: Namnet på fältet från argumentet <code class=\"docutils literal notranslate\">name</code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">'is_hidden'</code>: En boolean som anger om denna widget är dold eller inte.</p></li>\n<li><p><code class=\"docutils literal notranslate\">'required'</code>: En boolean som anger om fältet för den här widgeten är obligatoriskt eller inte.</p></li>\n<li><p><code class=\"docutils literal notranslate\">'värde'</code>: Det värde som returneras av <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\">format_value()</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">'attrs'</code>: HTML-attribut som ska ställas in på den renderade widgeten. Kombinationen av attributet <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">attrs</code></a> och argumentet <code class=\"docutils literal notranslate\">attrs</code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">'template_name'</code>: Värdet av <code class=\"docutils literal notranslate\">self.template_name</code>.</p></li>\n</ul>\n<p>underklasser till <code class=\"docutils literal notranslate\">Widget</code> kan tillhandahålla anpassade kontextvärden genom att åsidosätta denna metod.</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\">id_for_label</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">id_</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>Returnerar HTML ID-attributet för denna widget för användning av en <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, givet fältets ID. Returnerar en tom sträng om ett ID inte är tillgängligt.</p>\n<p>Denna hook är nödvändig eftersom vissa widgetar har flera HTML-element och därmed flera ID:n. I så fall bör den här metoden returnera ett ID-värde som motsvarar det första ID:t i widgetens taggar.</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\">render</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">value</em>, <em class=\"sig-param\">attrs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">renderer<span class=\"o\">=</span><span class=\"default_value\">None</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>Renderar en widget till HTML med hjälp av den angivna renderaren. Om <code class=\"docutils literal notranslate\">renderer</code> är <code class=\"docutils literal notranslate\">None</code> används renderaren från inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\">FORM_RENDERER</code></a>.</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\">value_from_datadict</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">data</em>, <em class=\"sig-param\">files</em>, <em class=\"sig-param\">name</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>Givet en ordbok med data och denna widgets namn, returnerar värdet av denna widget. <code class=\"docutils literal notranslate\">files</code> kan innehålla data som kommer från <a class=\"reference internal\" href=\"/sv/6.1/ref/request-response/#django.http.HttpRequest.FILES\" title=\"django.http.HttpRequest.FILES\"><code class=\"xref py py-attr docutils literal notranslate\">request.FILES</code></a>. Returnerar <code class=\"docutils literal notranslate\">None</code> om inget värde har angetts. Observera också att <code class=\"docutils literal notranslate\">value_from_datadict</code> kan anropas mer än en gång under hanteringen av formulärdata, så om du anpassar det och lägger till dyr bearbetning bör du implementera någon cachemekanism själv.</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\">value_omitted_from_data</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">data</em>, <em class=\"sig-param\">files</em>, <em class=\"sig-param\">name</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>Med hjälp av ordböckerna <code class=\"docutils literal notranslate\">data</code> och <code class=\"docutils literal notranslate\">files</code> och widgetens namn returneras om det finns data eller filer för widgeten eller inte.</p>\n<p>Metodens resultat påverkar om ett fält i ett modellformulär <a class=\"reference internal\" href=\"/sv/6.1/topics/forms/modelforms/#topics-modelform-save\"><span class=\"std std-ref\">faller tillbaka till sin standard</span></a> eller inte.</p>\n<p>Specialfall är <a class=\"reference internal\" href=\"#django.forms.CheckboxInput\" title=\"django.forms.CheckboxInput\"><code class=\"xref py py-class docutils literal notranslate\">CheckboxInput</code></a>, <a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\">CheckboxSelectMultiple</code></a> och <a class=\"reference internal\" href=\"#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\">SelectMultiple</code></a>, som alltid returnerar <code class=\"docutils literal notranslate\">False</code> eftersom en avmarkerad kryssruta och omarkerad <code class=\"docutils literal notranslate\">&lt;select multiple&gt;</code> inte visas i data från en HTML-formulärinlämning, så det är okänt om användaren skickade in ett värde eller inte.</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\">use_fieldset</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>Ett attribut för att identifiera om widgeten ska grupperas i en <code class=\"docutils literal notranslate\">&lt;fieldset&gt;</code> med en <code class=\"docutils literal notranslate\">&lt;legend&gt;</code> när den renderas. Standardvärdet är <code class=\"docutils literal notranslate\">False</code> men är <code class=\"docutils literal notranslate\">True</code> när widgeten innehåller flera <code class=\"docutils literal notranslate\">&lt;input&gt;</code> taggar som <a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\">CheckboxSelectMultiple</code></a>, <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\">RadioSelect</code></a>, <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\">MultiWidget</code></a>, <a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\">SplitDateTimeWidget</code></a>, och <a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\">SelectDateWidget</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\">use_required_attribute</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">initial</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>Med tanke på ett formulärfälts <code class=\"docutils literal notranslate\">initial</code>-värde returneras huruvida widgeten kan återges med HTML-attributet <code class=\"docutils literal notranslate\">required</code> eller inte. Formulär använder den här metoden tillsammans med <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.Field.required\" title=\"django.forms.Field.required\"><code class=\"xref py py-attr docutils literal notranslate\">Field.required</code></a> och <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/api/#django.forms.Form.use_required_attribute\" title=\"django.forms.Form.use_required_attribute\"><code class=\"xref py py-attr docutils literal notranslate\">Form.use_required_attribute</code></a> för att avgöra om attributet <code class=\"docutils literal notranslate\">required</code> ska visas eller inte för varje fält.</p>\n<p>Som standard returneras <code class=\"docutils literal notranslate\">False</code> för dolda widgetar och <code class=\"docutils literal notranslate\">True</code> annars. Specialfall är <a class=\"reference internal\" href=\"#django.forms.FileInput\" title=\"django.forms.FileInput\"><code class=\"xref py py-class docutils literal notranslate\">FileInput</code></a> och <a class=\"reference internal\" href=\"#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\">ClearableFileInput</code></a>, som returnerar <code class=\"docutils literal notranslate\">False</code> när <code class=\"docutils literal notranslate\">initial</code> är inställt, och <a class=\"reference internal\" href=\"#django.forms.CheckboxSelectMultiple\" title=\"django.forms.CheckboxSelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\">CheckboxSelectMultiple</code></a>, som alltid returnerar <code class=\"docutils literal notranslate\">False</code> eftersom webbläsarvalidering skulle kräva att alla kryssrutor är markerade istället för minst en.</p>\n<p>Åsidosätt den här metoden i anpassade widgetar som inte är kompatibla med webbläsarvalidering. En WYSIWYG-textredigerarwidget som till exempel bygger på ett dolt <code class=\"docutils literal notranslate\">textarea</code>-element kanske alltid vill returnera <code class=\"docutils literal notranslate\">False</code> för att undvika webbläsarvalidering av det dolda fältet.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"multiwidget\">\n<h3><code class=\"docutils literal notranslate\">MultiWidget</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\">class</span> </em><span class=\"sig-name descname\">MultiWidget</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">widgets</em>, <em class=\"sig-param\">attrs<span class=\"o\">=</span><span class=\"default_value\">None</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>En widget som består av flera widgetar. <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\">MultiWidget</code></a> arbetar hand i hand med <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\">MultiValueField</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\">MultiWidget</code></a> har ett obligatoriskt argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiWidget.widgets\">\n<span class=\"sig-name descname\">widgets</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>En iterabel som innehåller de widgetar som behövs. Till exempel:</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=\"nn\">django.forms</span> <span class=\"kn\">import</span> MultiWidget<span class=\"p\">,</span> TextInput\n<span class=\"gp\">&gt;&gt;&gt; </span>widget <span class=\"o\">=</span> MultiWidget<span class=\"p\">(</span>widgets<span class=\"o\">=</span><span class=\"p\">[</span>TextInput<span class=\"p\">,</span> TextInput<span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>widget<span class=\"o\">.</span>render<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>Du kan tillhandahålla en ordbok för att ange anpassade suffix för attributet <code class=\"docutils literal notranslate\">name</code> på varje subwidget. I det här fallet kommer nyckeln för varje par <code class=\"docutils literal notranslate\">(nyckel, widget)</code> att läggas till widgetens <code class=\"docutils literal notranslate\">namn</code> för att generera attributvärdet. Du kan ange den tomma strängen (<code class=\"docutils literal notranslate\">''</code>) för en enda nyckel, för att undertrycka suffixet för en widget. Till exempel:</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>widget <span class=\"o\">=</span> MultiWidget<span class=\"p\">(</span>widgets<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">:</span> TextInput<span class=\"p\">,</span> <span class=\"s2\">&quot;last&quot;</span><span class=\"p\">:</span> TextInput<span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>widget<span class=\"o\">.</span>render<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>Och en nödvändig metod:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiWidget.decompress\">\n<span class=\"sig-name descname\">decompress</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">value</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>Denna metod tar ett enda ”komprimerat” värde från fältet och returnerar en lista med ”dekomprimerade” värden. Inmatningsvärdet kan antas vara giltigt, men inte nödvändigtvis icke-tomt.</p>\n<p>Denna metod <strong>måste implementeras</strong> av underklassen, och eftersom värdet kan vara tomt måste implementeringen vara defensiv.</p>\n<p>Tanken bakom ”dekomprimering” är att det är nödvändigt att ”dela upp” det kombinerade värdet för formulärfältet i värden för varje widget.</p>\n<p>Ett exempel på detta är hur <a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\">SplitDateTimeWidget</code></a> förvandlar ett <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a>-värde till en lista med datum och tid uppdelade i två separata värden:</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=\"nn\">django.forms</span> <span class=\"kn\">import</span> MultiWidget\n\n\n<span class=\"k\">class</span> <span class=\"nc\">SplitDateTimeWidget</span><span class=\"p\">(</span>MultiWidget<span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">decompress</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> value<span class=\"p\">):</span>\n        <span class=\"k\">if</span> value<span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span>value<span class=\"o\">.</span>date<span class=\"p\">(),</span> value<span class=\"o\">.</span>time<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\" role=\"note\">\n<p class=\"admonition-title\">Tips</p>\n<p>Observera att <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\">MultiValueField</code></a> har en kompletterande metod <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.MultiValueField.compress\" title=\"django.forms.MultiValueField.compress\"><code class=\"xref py py-meth docutils literal notranslate\">compress()</code></a> med motsatt ansvar - att kombinera rensade värden för alla medlemsfält till ett.</p>\n</aside>\n</dd></dl>\n\n<p>Det ger ett anpassat sammanhang:</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\">get_context</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">value</em>, <em class=\"sig-param\">attrs</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>Förutom nyckeln <code class=\"docutils literal notranslate\">'widget'</code> som beskrivs i <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\">Widget.get_context()</code></a>, lägger <code class=\"docutils literal notranslate\">MultiWidget</code> till en nyckel <code class=\"docutils literal notranslate\">widget['subwidgets']</code>.</p>\n<p>Dessa kan loopas över i widgetmallen:</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>Här är ett exempel på en widget som underklassar <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\">MultiWidget</code></a> för att visa ett datum med dag, månad och år i olika valboxar. Denna widget är avsedd att användas med en <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a> snarare än en <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\">MultiValueField</code></a>, därför har vi implementerat <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\">value_from_datadict()</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=\"nn\">datetime</span> <span class=\"kn\">import</span> date\n<span class=\"kn\">from</span> <span class=\"nn\">django</span> <span class=\"kn\">import</span> forms\n\n\n<span class=\"k\">class</span> <span class=\"nc\">DateSelectorWidget</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>MultiWidget<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> attrs<span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        days <span class=\"o\">=</span> <span class=\"p\">{</span>day<span class=\"p\">:</span> day <span class=\"k\">for</span> day <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        months <span class=\"o\">=</span> <span class=\"p\">{</span>month<span class=\"p\">:</span> month <span class=\"k\">for</span> month <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        years <span class=\"o\">=</span> <span class=\"p\">{</span>year<span class=\"p\">:</span> year <span class=\"k\">for</span> year <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        widgets <span class=\"o\">=</span> <span class=\"p\">[</span>\n            forms<span class=\"o\">.</span>Select<span class=\"p\">(</span>attrs<span class=\"o\">=</span>attrs<span class=\"p\">,</span> choices<span class=\"o\">=</span>days<span class=\"p\">),</span>\n            forms<span class=\"o\">.</span>Select<span class=\"p\">(</span>attrs<span class=\"o\">=</span>attrs<span class=\"p\">,</span> choices<span class=\"o\">=</span>months<span class=\"p\">),</span>\n            forms<span class=\"o\">.</span>Select<span class=\"p\">(</span>attrs<span class=\"o\">=</span>attrs<span class=\"p\">,</span> choices<span class=\"o\">=</span>years<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>widgets<span class=\"p\">,</span> attrs<span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">decompress</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> value<span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span>value<span class=\"p\">,</span> date<span class=\"p\">):</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span>value<span class=\"o\">.</span>day<span class=\"p\">,</span> value<span class=\"o\">.</span>month<span class=\"p\">,</span> value<span class=\"o\">.</span>year<span class=\"p\">]</span>\n        <span class=\"k\">elif</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span>value<span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">):</span>\n            year<span class=\"p\">,</span> month<span class=\"p\">,</span> day <span class=\"o\">=</span> value<span class=\"o\">.</span>split<span class=\"p\">(</span><span class=\"s2\">&quot;-&quot;</span><span class=\"p\">)</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span>day<span class=\"p\">,</span> month<span class=\"p\">,</span> year<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=\"nf\">value_from_datadict</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> data<span class=\"p\">,</span> files<span class=\"p\">,</span> name<span class=\"p\">):</span>\n        day<span class=\"p\">,</span> month<span class=\"p\">,</span> year <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span>value_from_datadict<span class=\"p\">(</span>data<span class=\"p\">,</span> files<span class=\"p\">,</span> name<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>format<span class=\"p\">(</span>year<span class=\"p\">,</span> month<span class=\"p\">,</span> day<span class=\"p\">)</span>\n</code></pre></div>\n<p>Konstruktören skapar flera <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\">Select</code></a> widgetar i en lista. Metoden <code class=\"docutils literal notranslate\">super()</code> använder denna lista för att konfigurera widgeten.</p>\n<p>Den nödvändiga metoden <a class=\"reference internal\" href=\"#django.forms.MultiWidget.decompress\" title=\"django.forms.MultiWidget.decompress\"><code class=\"xref py py-meth docutils literal notranslate\">decompress()</code></a> delar upp ett <code class=\"docutils literal notranslate\">datetime.date</code>-värde i värdena för dag, månad och år som motsvarar varje widget. Om ett ogiltigt datum valdes, till exempel den icke-existerande 30 februari, skickar <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a> den här metoden en sträng istället, så det måste analyseras. Den sista <code class=\"docutils literal notranslate\">return</code> hanterar när <code class=\"docutils literal notranslate\">value</code> är <code class=\"docutils literal notranslate\">None</code>, vilket innebär att vi inte har några standardvärden för våra underwidgets.</p>\n<p>Standardimplementeringen av <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\">value_from_datadict()</code></a> returnerar en lista med värden som motsvarar varje <code class=\"docutils literal notranslate\">Widget</code>. Detta är lämpligt när man använder en <code class=\"docutils literal notranslate\">MultiWidget</code> med en <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\">MultiValueField</code></a>. Men eftersom vi vill använda denna widget med en <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a>, som tar ett enda värde, har vi åsidosatt denna metod. Implementationen här kombinerar data från underwidgetarna till en sträng i det format som <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a> förväntar sig.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"built-in-widgets\">\n<span id=\"id4\"></span><h2>Inbyggda widgetar<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 tillhandahåller en representation av alla grundläggande HTML-widgets, plus några vanligt förekommande grupper av widgets i modulen <code class=\"docutils literal notranslate\">django.forms.widgets</code>, inklusive <a class=\"reference internal\" href=\"#text-widgets\"><span class=\"std std-ref\">inmatning av text</span></a>, <a class=\"reference internal\" href=\"#selector-widgets\"><span class=\"std std-ref\">olika kryssrutor och väljare</span></a>, <a class=\"reference internal\" href=\"#file-upload-widgets\"><span class=\"std std-ref\">uppladdning av filer</span></a> och <a class=\"reference internal\" href=\"#composite-widgets\"><span class=\"std std-ref\">hantering av flervärdesinmatning</span></a>.</p>\n<section id=\"widgets-handling-input-of-text\">\n<span id=\"text-widgets\"></span><h3>Widgets som hanterar inmatning av text<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>Dessa widgets använder HTML-elementen <code class=\"docutils literal notranslate\">input</code> och <code class=\"docutils literal notranslate\">textarea</code>.</p>\n<section id=\"textinput\">\n<h4><code class=\"docutils literal notranslate\">TextInput</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\">class</span> </em><span class=\"sig-name descname\">TextInput</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>inmatningstyp: ”text</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/text.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;text&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"numberinput\">\n<h4><code class=\"docutils literal notranslate\">NummerInmatning</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\">class</span> </em><span class=\"sig-name descname\">NumberInput</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>inmatningstyp: ”tal</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/number.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;number&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tänk på att inte alla webbläsare stöder inmatning av lokaliserade siffror i inmatningstyperna <code class=\"docutils literal notranslate\">number</code>. Django själv undviker att använda dem för fält som har sin <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\">localize</code></a> egenskap inställd på <code class=\"docutils literal notranslate\">True</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"emailinput\">\n<h4><code class=\"docutils literal notranslate\">EmailInput</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\">class</span> </em><span class=\"sig-name descname\">EmailInput</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\">input_type</code>: <code class=\"docutils literal notranslate\">'email'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/email.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;email&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"urlinput\">\n<h4><code class=\"docutils literal notranslate\">URLInput</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\">class</span> </em><span class=\"sig-name descname\">URLInput</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>inmatningstyp: ”url</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/url.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;url&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"colorinput\">\n<h4><code class=\"docutils literal notranslate\">FärgInmatning</code><a class=\"heading-anchor\" href=\"#colorinput\"><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.ColorInput\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ColorInput</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>inmatningstyp: ”färg</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>:<code class=\"docutils literal notranslate\">'django/forms/widgets/color.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;color&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"searchinput\">\n<h4><code class=\"docutils literal notranslate\">SökningInput</code><a class=\"heading-anchor\" href=\"#searchinput\"><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.SearchInput\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SearchInput</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\">input_type</code>: <code class=\"docutils literal notranslate\">'search'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/search.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;search&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"telinput\">\n<h4><code class=\"docutils literal notranslate\">TelInput</code><a class=\"heading-anchor\" href=\"#telinput\"><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.TelInput\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TelInput</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>inmatningstyp: ”tel</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/tel.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;tel&quot; ...&gt;</code></p></li>\n</ul>\n<p>Webbläsare utför ingen validering på klientsidan som standard eftersom telefonnummerformat varierar så mycket runt om i världen. Du kan lägga till några genom att ställa in <code class=\"docutils literal notranslate\">pattern</code>, <code class=\"docutils literal notranslate\">minlength</code> eller <code class=\"docutils literal notranslate\">maxlength</code> i argumentet <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">Widget.attrs</code></a>.</p>\n<p>Dessutom kan du lägga till validering på serversidan till ditt formulärfält med en validerare som <a class=\"reference internal\" href=\"/sv/6.1/ref/validators/#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> eller via tredjepartspaket, t.ex. <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\">LösenordInmatning</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\">class</span> </em><span class=\"sig-name descname\">PasswordInput</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>inmatningstyp: ”Lösenord</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/password.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;password&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tar emot ett valfritt argument:</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\">render_value</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>Bestämmer om widgeten ska ha ett värde ifyllt när formuläret visas igen efter ett valideringsfel (standard är <code class=\"docutils literal notranslate\">False</code>).</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"hiddeninput\">\n<h4><code class=\"docutils literal notranslate\">HiddenInput</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\">class</span> </em><span class=\"sig-name descname\">HiddenInput</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>inmatningstyp: ”dold</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/hidden.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;hidden&quot; ...&gt;</code></p></li>\n</ul>\n<p>Observera att det också finns en widget av typen <a class=\"reference internal\" href=\"#django.forms.MultipleHiddenInput\" title=\"django.forms.MultipleHiddenInput\"><code class=\"xref py py-class docutils literal notranslate\">MultipleHiddenInput</code></a> som innehåller en uppsättning dolda inmatningselement.</p>\n</dd></dl>\n\n</section>\n<section id=\"dateinput\">\n<h4><code class=\"docutils literal notranslate\">DatumInmatning</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\">class</span> </em><span class=\"sig-name descname\">DateInput</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>inmatningstyp: ”text</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/date.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;text&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tar samma argument som <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>, med ytterligare ett valfritt argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateInput.format\">\n<span class=\"sig-name descname\">format</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>Det format som fältets initiala värde ska visas i.</p>\n</dd></dl>\n\n<p>Om inget <code class=\"docutils literal notranslate\">format</code>-argument anges är standardformatet det första formatet som hittas i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\">DATE_INPUT_FORMATS</code></a> och respekterar <a class=\"reference internal\" href=\"/sv/6.1/topics/i18n/formatting/\"><span class=\"doc\">Lokalisering av format</span></a>. formaten <code class=\"docutils literal notranslate\">%U</code>, <code class=\"docutils literal notranslate\">%W</code> och <code class=\"docutils literal notranslate\">%j</code> stöds inte av den här widgeten.</p>\n<aside class=\"admonition-using-the-html5-date-input-type admonition\" role=\"note\">\n<p class=\"admonition-title\">Använda inmatningstypen HTML5-”date”</p>\n<p>Om du riktar dig till webbläsare som stöder <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\">inmatningstypen HTML5-”date”</a> kan du åsidosätta attributet <code class=\"docutils literal notranslate\">input_type</code> för att aktivera webbläsarens inbyggda datumväljare:</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=\"nc\">MyDateInput</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>DateInput<span class=\"p\">):</span>\n    input_type <span class=\"o\">=</span> <span class=\"s2\">&quot;date&quot;</span>\n    <span class=\"nb\">format</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\">&quot;</span>\n</code></pre></div>\n<p>Alternativt:</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>DateInput<span class=\"p\">(</span>attrs<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;date&quot;</span><span class=\"p\">},</span> <span class=\"nb\">format</span><span class=\"o\">=</span><span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>HTML5-datuminmatningar förväntar sig värden i ISO-formatet <code class=\"docutils literal notranslate\">YYYY-MM-DD</code>. Om ett annat format anges kan fältet se tomt ut även när ett värde finns. Attributet <code class=\"docutils literal notranslate\">format</code> styr hur Django tillhandahåller värdet, men webbläsaren styr hur det visas. Därför påverkar attributet <code class=\"docutils literal notranslate\">format</code> och inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\">DATE_INPUT_FORMATS</code></a> inte det visade värdet.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"datetimeinput\">\n<h4><code class=\"docutils literal notranslate\">DateTimeInput</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\">class</span> </em><span class=\"sig-name descname\">DateTimeInput</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>inmatningstyp: ”text</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/datetime.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;text&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tar samma argument som <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>, med ytterligare ett valfritt argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeInput.format\">\n<span class=\"sig-name descname\">format</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>Det format som fältets initiala värde ska visas i.</p>\n</dd></dl>\n\n<p>Om inget <code class=\"docutils literal notranslate\">format</code>-argument anges är standardformatet det första formatet som hittas i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\">DATETIME_INPUT_FORMATS</code></a> och respekterar <a class=\"reference internal\" href=\"/sv/6.1/topics/i18n/formatting/\"><span class=\"doc\">Lokalisering av format</span></a>. formaten <code class=\"docutils literal notranslate\">%U</code>, <code class=\"docutils literal notranslate\">%W</code> och <code class=\"docutils literal notranslate\">%j</code> stöds inte av den här widgeten.</p>\n<p>Som standard är mikrosekunderdelen av tidsvärdet alltid satt till <code class=\"docutils literal notranslate\">0</code>. Om mikrosekunder krävs, använd en subklass med attributet <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\">supports_microseconds</code></a> satt till <code class=\"docutils literal notranslate\">True</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"timeinput\">\n<h4><code class=\"docutils literal notranslate\">TimeInput</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\">class</span> </em><span class=\"sig-name descname\">TimeInput</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>inmatningstyp: ”text</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/time.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;text&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tar samma argument som <a class=\"reference internal\" href=\"#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\">TextInput</code></a>, med ytterligare ett valfritt argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeInput.format\">\n<span class=\"sig-name descname\">format</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>Det format som fältets initiala värde ska visas i.</p>\n</dd></dl>\n\n<p>Om inget <code class=\"docutils literal notranslate\">format</code>-argument anges är standardformatet det första formatet som hittas i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\">TIME_INPUT_FORMATS</code></a> och respekterar <a class=\"reference internal\" href=\"/sv/6.1/topics/i18n/formatting/\"><span class=\"doc\">Lokalisering av format</span></a>.</p>\n<p>För behandling av mikrosekunder, se <a class=\"reference internal\" href=\"#django.forms.DateTimeInput\" title=\"django.forms.DateTimeInput\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeInput</code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"textarea\">\n<h4><code class=\"docutils literal notranslate\">Textarea</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\">class</span> </em><span class=\"sig-name descname\">Textarea</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/textarea.html'</code></p></li>\n<li><p>Återges som: <code class=\"docutils literal notranslate\">.&lt;textarea&gt;.&lt;/textarea&gt;.</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>Väljare och kryssrutor<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>Dessa widgets använder HTML-elementen <code class=\"docutils literal notranslate\">&lt;select&gt;</code>, <code class=\"docutils literal notranslate\">&lt;input type=&quot;checkbox&quot;&gt;</code> och <code class=\"docutils literal notranslate\">&lt;input type=&quot;radio&quot;&gt;</code>.</p>\n<p>Widgetar som återger flera val har ett attribut <code class=\"docutils literal notranslate\">option_template_name</code> som anger den mall som används för att återge varje val. Till exempel:, för widgeten <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\">Select</code></a>, <code class=\"docutils literal notranslate\">select_option.html</code> renderar <code class=\"docutils literal notranslate\">&lt;option&gt;</code> för en <code class=\"docutils literal notranslate\">&lt;select&gt;</code>.</p>\n<section id=\"checkboxinput\">\n<h4><code class=\"docutils literal notranslate\">CheckboxInput</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\">class</span> </em><span class=\"sig-name descname\">CheckboxInput</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>inmatningstyp: ”Checkbox</p></li>\n<li><p><code class=\"docutils literal notranslate\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/checkbox.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;checkbox&quot; ...&gt;</code></p></li>\n</ul>\n<p>Tar emot ett valfritt argument:</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\">check_test</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>En anropsbar funktion som tar värdet i <code class=\"docutils literal notranslate\">CheckboxInput</code> och returnerar <code class=\"docutils literal notranslate\">True</code> om kryssrutan ska markeras för det värdet.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"select\">\n<h4><code class=\"docutils literal notranslate\">Välj</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\">class</span> </em><span class=\"sig-name descname\">Select</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select.html'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">option_template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select_option.html'</code></p></li>\n<li><p>Renderas som: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&lt;select&gt;&lt;option …&gt;…``&lt;/select&gt;</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\">choices</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>Detta attribut är valfritt om formulärfältet inte har något <code class=\"docutils literal notranslate\">choices</code>-attribut. Om det gör det kommer det att åsidosätta allt du anger här när attributet uppdateras på <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"nullbooleanselect\">\n<h4><code class=\"docutils literal notranslate\">NullBooleanSelect</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\">class</span> </em><span class=\"sig-name descname\">NullBooleanSelect</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select.html'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">option_template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select_option.html'</code></p></li>\n</ul>\n<p>Välj widget med alternativen ”Okänd”, ”Ja” och ”Nej</p>\n</dd></dl>\n\n</section>\n<section id=\"selectmultiple\">\n<h4><code class=\"docutils literal notranslate\">VäljMultipel</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\">class</span> </em><span class=\"sig-name descname\">SelectMultiple</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select.html'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">option_template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select_option.html'</code></p></li>\n</ul>\n<p>Liknar <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\">Select</code></a>, men tillåter flera val: <code class=\"docutils literal notranslate\">.&lt;select multiple&gt;.&lt;/select&gt;.</code></p>\n</dd></dl>\n\n</section>\n<section id=\"radioselect\">\n<h4><code class=\"docutils literal notranslate\">RadioSelect</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\">class</span> </em><span class=\"sig-name descname\">RadioSelect</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/radio.html'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">option_template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/radio_option.html'</code></p></li>\n</ul>\n<p>Liknar <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\">Select</code></a>, men återges som en lista med alternativknappar inom <code class=\"docutils literal notranslate\">&lt;div&gt;</code> taggar:</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>Om du vill ha mer detaljerad kontroll över den genererade markeringen kan du loopa över radioknapparna i mallen. Anta ett formulär <code class=\"docutils literal notranslate\">myform</code> med ett fält <code class=\"docutils literal notranslate\">beatles</code> som använder en <code class=\"docutils literal notranslate\">RadioSelect</code> som sin 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>Detta skulle generera följande HTML:</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>Det inkluderade taggarna <code class=\"docutils literal notranslate\">&lt;label&gt;</code>. För att bli mer detaljerad kan du använda varje radioknapps attribut <code class=\"docutils literal notranslate\">tag</code>, <code class=\"docutils literal notranslate\">choice_label</code> och <code class=\"docutils literal notranslate\">id_for_label</code>. Till exempel:, den här mallen…</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>…kommer att resultera i följande HTML:</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>Om du bestämmer dig för att inte loopa över alternativknapparna - t.ex. om din mall innehåller <code class=\"docutils literal notranslate\">{{ myform.beatles }}</code> - kommer de att matas ut i en <code class=\"docutils literal notranslate\">&lt;div&gt;</code> med <code class=\"docutils literal notranslate\">&lt;div&gt;</code>-taggar, enligt ovan.</p>\n<p>Den yttre behållaren <code class=\"docutils literal notranslate\">&lt;div&gt;</code> får widgetens <code class=\"docutils literal notranslate\">id</code>-attribut, om det är definierat, eller <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/api/#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\">BoundField.auto_id</code></a> annars.</p>\n<p>När du loopar över radioknapparna innehåller taggarna <code class=\"docutils literal notranslate\">label</code> och <code class=\"docutils literal notranslate\">input</code> attributen <code class=\"docutils literal notranslate\">for</code> respektive <code class=\"docutils literal notranslate\">id</code>. Varje radioknapp har ett <code class=\"docutils literal notranslate\">id_for_label</code>-attribut för att mata ut elementets ID.</p>\n</dd></dl>\n\n</section>\n<section id=\"checkboxselectmultiple\">\n<h4><code class=\"docutils literal notranslate\">CheckboxSelectMultiple</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\">class</span> </em><span class=\"sig-name descname\">CheckboxSelectMultiple</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/checkbox_select.html'</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">option_template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/checkbox_option.html'</code></p></li>\n</ul>\n<p>Liknar <a class=\"reference internal\" href=\"#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\">SelectMultiple</code></a>, men återges som en lista med kryssrutor:</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>Den yttre behållaren <code class=\"docutils literal notranslate\">&lt;div&gt;</code> får widgetens <code class=\"docutils literal notranslate\">id</code>-attribut, om det är definierat, eller <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/api/#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\">BoundField.auto_id</code></a> annars.</p>\n</dd></dl>\n\n<p>Precis som i <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\">RadioSelect</code></a> kan du loopa över de enskilda kryssrutorna för widgetens val. Till skillnad från <a class=\"reference internal\" href=\"#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\">RadioSelect</code></a> kommer kryssrutorna inte att innehålla HTML-attributet <code class=\"docutils literal notranslate\">required</code> om fältet är obligatoriskt eftersom webbläsarvalidering skulle kräva att alla kryssrutor är markerade istället för minst en.</p>\n<p>När man loopar över kryssrutorna innehåller taggarna <code class=\"docutils literal notranslate\">label</code> och <code class=\"docutils literal notranslate\">input</code> attributen <code class=\"docutils literal notranslate\">for</code> respektive <code class=\"docutils literal notranslate\">id</code>. Varje kryssruta har ett <code class=\"docutils literal notranslate\">id_for_label</code>-attribut för att mata ut elementets ID.</p>\n</section>\n</section>\n<section id=\"file-upload-widgets\">\n<span id=\"id5\"></span><h3>Widgets för filuppladdning<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\">FileInput</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\">class</span> </em><span class=\"sig-name descname\">FileInput</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/file.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;file&quot; ...&gt;</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"clearablefileinput\">\n<h4><code class=\"docutils literal notranslate\">Rensa filinmatning</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\">class</span> </em><span class=\"sig-name descname\">ClearableFileInput</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/clearable_file_input.html'</code></p></li>\n<li><p>Renderas som: <code class=\"docutils literal notranslate\">&lt;input type=&quot;file&quot; ...&gt;</code> med en extra kryssruta för att rensa fältets värde, om fältet inte är obligatoriskt och har initiala data.</p></li>\n</ul>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"composite-widgets\">\n<span id=\"id6\"></span><h3>Sammansatta widgetar<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\">MultipleHiddenInput</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\">class</span> </em><span class=\"sig-name descname\">MultipleHiddenInput</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/multiple_hidden.html'</code></p></li>\n<li><p>Renderas som: flera <code class=\"docutils literal notranslate\">&lt;input type=&quot;hidden&quot; ...&gt;</code> taggar</p></li>\n</ul>\n<p>En widget som hanterar flera dolda widgetar för fält som har en lista med värden.</p>\n</dd></dl>\n\n</section>\n<section id=\"splitdatetimewidget\">\n<h4><code class=\"docutils literal notranslate\">SplitDateTimeWidget</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\">class</span> </em><span class=\"sig-name descname\">SplitDateTimeWidget</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/splitdatetime.html'</code></p></li>\n</ul>\n<p>Omslag (med hjälp av <a class=\"reference internal\" href=\"#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\">MultiWidget</code></a>) runt två widgets: <a class=\"reference internal\" href=\"#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\">DateInput</code></a> för datum och <a class=\"reference internal\" href=\"#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\">TimeInput</code></a> för tid. Måste användas med <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.SplitDateTimeField\" title=\"django.forms.SplitDateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">SplitDateTimeField</code></a> snarare än <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateTimeField\" title=\"django.forms.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeField</code></a>.</p>\n<p><code class=\"docutils literal notranslate\">SplitDateTimeWidget</code> har flera valfria argument:</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\">date_format</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>Liknande <a class=\"reference internal\" href=\"#django.forms.DateInput.format\" title=\"django.forms.DateInput.format\"><code class=\"xref py py-attr docutils literal notranslate\">DateInput.format</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\">time_format</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>Liknande <a class=\"reference internal\" href=\"#django.forms.TimeInput.format\" title=\"django.forms.TimeInput.format\"><code class=\"xref py py-attr docutils literal notranslate\">TimeInput.format</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\">date_attrs</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\">time_attrs</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>Liknar <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">Widget.attrs</code></a>. En dictionary som innehåller HTML-attribut som ska ställas in på de renderade widgetarna <a class=\"reference internal\" href=\"#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\">DateInput</code></a> respektive <a class=\"reference internal\" href=\"#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\">TimeInput</code></a>. Om dessa attribut inte är inställda används istället <a class=\"reference internal\" href=\"#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\">Widget.attrs</code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"splithiddendatetimewidget\">\n<h4><code class=\"docutils literal notranslate\">SplitHiddenDateTimeWidget</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\">class</span> </em><span class=\"sig-name descname\">SplitHiddenDateTimeWidget</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/splithiddendatetime.html'</code></p></li>\n</ul>\n<p>Liknar <a class=\"reference internal\" href=\"#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\">SplitDateTimeWidget</code></a>, men använder <a class=\"reference internal\" href=\"#django.forms.HiddenInput\" title=\"django.forms.HiddenInput\"><code class=\"xref py py-class docutils literal notranslate\">HiddenInput</code></a> för både datum och tid.</p>\n</dd></dl>\n\n</section>\n<section id=\"selectdatewidget\">\n<h4><code class=\"docutils literal notranslate\">SelectDateWidget</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\">class</span> </em><span class=\"sig-name descname\">SelectDateWidget</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\">template_name</code>: <code class=\"docutils literal notranslate\">'django/forms/widgets/select_date.html'</code></p></li>\n</ul>\n<p>Omslag runt tre <a class=\"reference internal\" href=\"#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\">Select</code></a> widgets: en vardera för månad, dag och år.</p>\n<p>Tar emot flera valfria argument:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SelectDateWidget.years\">\n<span class=\"sig-name descname\">years</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>En valfri lista/tupel av år som ska användas i valboxen ”year”. Standard är en lista som innehåller det aktuella året och de kommande 9 åren.</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\">months</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>Ett valfritt antal månader som ska användas i valboxen ”månader”.</p>\n<p>Diktens nycklar motsvarar månadsnumret (1-indexerat) och värdena är de visade månaderna:</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>MONTHS <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"mi\">1</span><span class=\"p\">:</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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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\">empty_label</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>Om <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a> inte krävs kommer <a class=\"reference internal\" href=\"#django.forms.SelectDateWidget\" title=\"django.forms.SelectDateWidget\"><code class=\"xref py py-class docutils literal notranslate\">SelectDateWidget</code></a> att ha ett tomt val längst upp i listan (som är <code class=\"docutils literal notranslate\">---</code> som standard). Du kan ändra texten på denna etikett med attributet <code class=\"docutils literal notranslate\">empty_label</code>. <code class=\"docutils literal notranslate\">empty_label</code> kan vara en <code class=\"docutils literal notranslate\">sträng</code>, <code class=\"docutils literal notranslate\">lista</code> eller <code class=\"docutils literal notranslate\">tupel</code>. När en sträng används kommer alla valboxar att ha ett tomt val med denna etikett. Om <code class=\"docutils literal notranslate\">empty_label</code> är en <code class=\"docutils literal notranslate\">list</code> eller <code class=\"docutils literal notranslate\">tuple</code> med 3 strängelement, kommer valboxarna att ha sin egen anpassade etikett. Etiketterna bör vara i denna ordning <code class=\"docutils literal notranslate\">('year_label', 'month_label', 'day_label')</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>\nfield1 <span class=\"o\">=</span> forms<span class=\"o\">.</span>DateField<span class=\"p\">(</span>widget<span class=\"o\">=</span>SelectDateWidget<span class=\"p\">(</span>empty_label<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>\nfield1 <span class=\"o\">=</span> forms<span class=\"o\">.</span>DateField<span class=\"p\">(</span>\n    widget<span class=\"o\">=</span>SelectDateWidget<span class=\"p\">(</span>\n        empty_label<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":"Ange widgetar","anchor":"specifying-widgets","children":[]},{"title":"Ställa in argument för widgets","anchor":"setting-arguments-for-widgets","children":[]},{"title":"Anpassa widgetinstanser","anchor":"customizing-widget-instances","children":[{"title":"Styling av widgetinstanser","anchor":"styling-widget-instances","children":[]},{"title":"Styling av widgetklasser","anchor":"styling-widget-classes","children":[]}]},{"title":"Klasser för baswidgetar","anchor":"base-widget-classes","children":[{"title":"Widget","anchor":"widget","children":[]},{"title":"MultiWidget","anchor":"multiwidget","children":[]}]},{"title":"Inbyggda widgetar","anchor":"built-in-widgets","children":[{"title":"Widgets som hanterar inmatning av text","anchor":"widgets-handling-input-of-text","children":[{"title":"TextInput","anchor":"textinput","children":[]},{"title":"NummerInmatning","anchor":"numberinput","children":[]},{"title":"EmailInput","anchor":"emailinput","children":[]},{"title":"URLInput","anchor":"urlinput","children":[]},{"title":"FärgInmatning","anchor":"colorinput","children":[]},{"title":"SökningInput","anchor":"searchinput","children":[]},{"title":"TelInput","anchor":"telinput","children":[]},{"title":"LösenordInmatning","anchor":"passwordinput","children":[]},{"title":"HiddenInput","anchor":"hiddeninput","children":[]},{"title":"DatumInmatning","anchor":"dateinput","children":[]},{"title":"DateTimeInput","anchor":"datetimeinput","children":[]},{"title":"TimeInput","anchor":"timeinput","children":[]},{"title":"Textarea","anchor":"textarea","children":[]}]},{"title":"Väljare och kryssrutor","anchor":"selector-and-checkbox-widgets","children":[{"title":"CheckboxInput","anchor":"checkboxinput","children":[]},{"title":"Välj","anchor":"select","children":[]},{"title":"NullBooleanSelect","anchor":"nullbooleanselect","children":[]},{"title":"VäljMultipel","anchor":"selectmultiple","children":[]},{"title":"RadioSelect","anchor":"radioselect","children":[]},{"title":"CheckboxSelectMultiple","anchor":"checkboxselectmultiple","children":[]}]},{"title":"Widgets för filuppladdning","anchor":"file-upload-widgets","children":[{"title":"FileInput","anchor":"fileinput","children":[]},{"title":"Rensa filinmatning","anchor":"clearablefileinput","children":[]}]},{"title":"Sammansatta widgetar","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":"API-referens","url":"/sv/6.1/ref/"},{"docname":"ref/forms/index","title":"Formulär","url":"/sv/6.1/ref/forms/"}],"prev":{"docname":"ref/forms/renderers","title":"API för rendering av formulär","url":"/sv/6.1/ref/forms/renderers/"},"next":{"docname":"ref/forms/validation","title":"Validering av formulär och fält","url":"/sv/6.1/ref/forms/validation/"},"formats":{"html":"/sv/6.1/ref/forms/widgets/","markdown":"/sv/6.1/ref/forms/widgets.md","json":"/sv/6.1/ref/forms/widgets.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/forms/widgets.txt","official":"https://docs.djangoproject.com/sv/6.1/ref/forms/widgets/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}