{"title":"API för formulär","version":"6.0","locale":"sv","docname":"ref/forms/api","url":"/sv/6.0/ref/forms/api/","canonical":"https://djangodocs.dev/sv/6.0/ref/forms/api/","summary":"Om detta dokument Detta dokument täcker de hårda detaljerna i Djangos formulär-API. Du bör läsa introduktion till att arbeta med formulär först. Inbundna och…","html":"<span id=\"the-forms-api\"></span><h1>API för formulär<a class=\"heading-anchor\" href=\"#module-django.forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"admonition-about-this-document admonition\">\n<p class=\"admonition-title\">Om detta dokument</p>\n<p>Detta dokument täcker de hårda detaljerna i Djangos formulär-API. Du bör läsa <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/\"><span class=\"doc\">introduktion till att arbeta med formulär</span></a> först.</p>\n</aside>\n<section id=\"bound-and-unbound-forms\">\n<span id=\"ref-forms-api-bound-unbound\"></span><h2>Inbundna och obundna formulär<a class=\"heading-anchor\" href=\"#bound-and-unbound-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>En instans av <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> är antingen <strong>bunden</strong> till en uppsättning data eller <strong>obunden</strong>.</p>\n<ul class=\"simple\">\n<li><p>Om det är <strong>bundet</strong> till en uppsättning data, kan det validera dessa data och rendera formuläret som HTML med de data som visas i HTML.</p></li>\n<li><p>Om det är <strong>unbound</strong> kan det inte göra validering (eftersom det inte finns några data att validera!), men det kan fortfarande återge det tomma formuläret som HTML.</p></li>\n</ul>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Form</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>För att skapa en obunden <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans instansierar du klassen:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>För att binda data till ett formulär skickar du data som en ordbok som första parameter till din <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-klass konstruktör:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>I den här ordlistan är nycklarna fältnamnen, som motsvarar attributen i din klass <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>. Värdena är de data som du försöker validera. Dessa kommer vanligtvis att vara strängar, men det finns inget krav på att de ska vara strängar; typen av data du skickar beror på <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>, som vi kommer att se om ett ögonblick.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_bound\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_bound</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_bound\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Om du behöver skilja mellan bundna och obundna formulärinstanser vid körning, kontrollera värdet på formulärets attribut <a class=\"reference internal\" href=\"#django.forms.Form.is_bound\" title=\"django.forms.Form.is_bound\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_bound</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">({</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>Observera att om du skickar en tom ordbok skapas ett <em>bundet</em> formulär med tomma data:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">({})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>Om du har en bunden <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans och vill ändra data på något sätt, eller om du vill binda en obunden <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans till vissa data, skapar du en annan <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans. Det finns inget sätt att ändra data i en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans. När en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans har skapats bör du betrakta dess data som oföränderliga, oavsett om den har data eller inte.</p>\n</section>\n<section id=\"using-forms-to-validate-data\">\n<h2>Använda formulär för att validera data<a class=\"heading-anchor\" href=\"#using-forms-to-validate-data\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.clean\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Implementera en <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code>-metod på din <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> när du måste lägga till anpassad validering för fält som är beroende av varandra. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/validation/#validating-fields-with-clean\"><span class=\"std std-ref\">Rengöring och validering av fält som är beroende av varandra</span></a> för exempel på användning.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_valid\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_valid</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_valid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den primära uppgiften för ett <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-objekt är att validera data. Med en bunden <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans anropar du <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a>-metoden för att köra validering och returnera en boolesk som anger om data var giltiga:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>Let’s try with some invalid data. In this case, <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code> is blank (an error,\nbecause all fields are required by default) and <code class=\"docutils literal notranslate\"><span class=\"pre\">contact_email</span></code> is not a\nvalid email address:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">errors</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Få tillgång till attributet <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> för att få en ordlista med felmeddelanden:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">{&#39;subject&#39;: [&#39;This field is required.&#39;],</span>\n<span class=\"go\"> &#39;contact_email&#39;: [&#39;Enter a valid email address.&#39;]}</span>\n</code></pre></div>\n<p>I den här ordlistan är nycklarna fältnamnen och värdena listor med strängar som representerar felmeddelandena. Felmeddelandena lagras i listor eftersom ett fält kan ha flera felmeddelanden.</p>\n<p>Du kan komma åt <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> utan att först behöva anropa <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a>. Formulärets data kommer att valideras första gången du antingen anropar <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> eller använder <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a>.</p>\n<p>Valideringsrutinerna kommer bara att anropas en gång, oavsett hur många gånger du använder <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> eller anropar <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a>. Detta innebär att om valideringen har bieffekter, kommer dessa bieffekter bara att utlösas en gång.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.as_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_data</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.as_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returnerar ett <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> som mappar fält till deras ursprungliga <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>-instanser.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">as_data</span><span class=\"p\">()</span>\n<span class=\"go\">{&#39;subject&#39;: [ValidationError([&#39;This field is required.&#39;])],</span>\n<span class=\"go\"> &#39;contact_email&#39;: [ValidationError([&#39;Enter a valid email address.&#39;])]}</span>\n</code></pre></div>\n<p>Use this method anytime you need to identify an error by its <code class=\"docutils literal notranslate\"><span class=\"pre\">code</span></code>. This\nenables things like rewriting the error’s message or writing custom logic in a\nview when a given error is present. It can also be used to serialize the errors\nin a custom format (e.g. XML); for instance, <a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_json()</span></code></a>\nrelies on <code class=\"docutils literal notranslate\"><span class=\"pre\">as_data()</span></code>.</p>\n<p>Behovet av metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">as_data()</span></code> beror på bakåtkompatibilitet. Tidigare förlorades <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>-instanser så snart deras <strong>renderade</strong> felmeddelanden lades till i <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code>-ordlistan. Helst skulle <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code> ha lagrat <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>-instanser och metoder med ett <code class=\"docutils literal notranslate\"><span class=\"pre\">as_</span></code>-prefix skulle kunna rendera dem, men det måste göras tvärtom för att inte bryta kod som förväntar sig renderade felmeddelanden i <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.as_json\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_json</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">escape_html</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.as_json\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns a string with the errors serialized as JSON.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">as_json</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;{&quot;subject&quot;: [{&quot;message&quot;: &quot;This field is required.&quot;, &quot;code&quot;: &quot;required&quot;}],</span>\n<span class=\"go\"> &quot;contact_email&quot;: [{&quot;message&quot;: &quot;Enter a valid email address.&quot;, &quot;code&quot;: &quot;invalid&quot;}]}&#39;</span>\n</code></pre></div>\n<p>Som standard escapar inte <code class=\"docutils literal notranslate\"><span class=\"pre\">as_json()</span></code> sin utdata. Om du använder den för något som AJAX-förfrågningar till en formulärvy där klienten tolkar svaret och infogar fel på sidan, vill du vara säker på att undkomma resultaten på klientsidan för att undvika risken för en cross-site scripting-attack. Du kan göra detta i JavaScript med <code class=\"docutils literal notranslate\"><span class=\"pre\">element.textContent</span> <span class=\"pre\">=</span> <span class=\"pre\">errorText</span></code> eller med jQuerys <code class=\"docutils literal notranslate\"><span class=\"pre\">$(el).text(errorText)</span></code> (snarare än dess <code class=\"docutils literal notranslate\"><span class=\"pre\">.html()</span></code>-funktion).</p>\n<p>Om du av någon anledning inte vill använda escaping på klientsidan kan du också ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">escape_html=True</span></code> och felmeddelanden kommer att escapas så att du kan använda dem direkt i HTML.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.get_json_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_json_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">escape_html</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.get_json_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the errors as a dictionary suitable for serializing to JSON.\n<a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.errors.as_json()</span></code></a> returns serialized JSON, while this returns the\nerror data before it’s serialized.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">escape_html</span></code> parameter behaves as described in\n<a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.errors.as_json()</span></code></a>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.add_error\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_error</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.add_error\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Denna metod gör det möjligt att lägga till fel i specifika fält inom metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.clean()</span></code>, eller helt utanför formuläret, t.ex. från en vy.</p>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> är namnet på det fält som felen ska läggas till i. Om dess värde är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> kommer felet att behandlas som ett icke-fältfel som returneras av <a class=\"reference internal\" href=\"#django.forms.Form.non_field_errors\" title=\"django.forms.Form.non_field_errors\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.non_field_errors()</span></code></a>.</p>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">error</span></code> kan vara en sträng, eller helst en instans av <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code>. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/validation/#raising-validation-error\"><span class=\"std std-ref\">Upphävande av ValidationError</span></a> för bästa praxis vid definition av formulärfel.</p>\n<p>Observera att <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.add_error()</span></code> automatiskt tar bort det relevanta fältet från <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.has_error\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_error</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.has_error\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Denna metod returnerar en boolean som anger om ett fält har ett fel med en specifik fel-”kod”. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">code</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> returneras <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om fältet innehåller några fel alls.</p>\n<p>För att kontrollera fel som inte är fält använder du <a class=\"reference internal\" href=\"/sv/6.0/ref/exceptions/#django.core.exceptions.NON_FIELD_ERRORS\" title=\"django.core.exceptions.NON_FIELD_ERRORS\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">NON_FIELD_ERRORS</span></code></a> som parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.non_field_errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">non_field_errors</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.non_field_errors\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den här metoden returnerar listan över fel från <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code></a> som inte är associerade med ett visst fält. Detta inkluderar <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> som tas upp i <a class=\"reference internal\" href=\"#django.forms.Form.clean\" title=\"django.forms.Form.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.clean()</span></code></a> och fel som läggs till med <a class=\"reference internal\" href=\"#django.forms.Form.add_error\" title=\"django.forms.Form.add_error\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.add_error(None,</span> <span class=\"pre\">&quot;...&quot;)</span></code></a>.</p>\n<section id=\"behavior-of-unbound-forms\">\n<h3>Beteende för obundna formulär<a class=\"heading-anchor\" href=\"#behavior-of-unbound-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det är meningslöst att validera ett formulär utan data, men så här går det till när formuläret är obundet:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">{}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"initial-form-values\">\n<span id=\"ref-forms-initial-form-values\"></span><h2>Initiala formvärden<a class=\"heading-anchor\" href=\"#initial-form-values\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.initial\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Använd <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> för att ange det initiala värdet för formulärfält vid körning. Du kanske t.ex. vill fylla i fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">username</span></code> med användarnamnet för den aktuella sessionen.</p>\n<p>För att åstadkomma detta använder du argumentet <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> till en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>. Detta argument, om det anges, bör vara en ordbok som mappar fältnamn till initiala värden. Inkludera bara de fält för vilka du anger ett initialt värde; det är inte nödvändigt att inkludera alla fält i ditt formulär. Exempelvis:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there!&quot;</span><span class=\"p\">})</span>\n</code></pre></div>\n<p>Dessa värden visas endast för obundna formulär och de används inte som reservvärden om ett visst värde inte anges.</p>\n<p>Om en <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> definierar <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> <em>och</em> du inkluderar <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> när du instansierar <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>, så kommer den senare <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> att ha företräde. I det här exemplet anges <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> både på fältnivå och på formulärinstansnivå, och den senare får företräde:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;instance&quot;</span><span class=\"p\">},</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;instance&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<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.get_initial_for_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_initial_for_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.get_initial_for_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returnerar de initiala uppgifterna för ett formulärfält. Den hämtar data från <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.initial</span></code></a> om den finns, annars försöker den <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.initial</span></code></a>. Kallbara värden utvärderas.</p>\n<p>It is recommended to use <a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> over\n<a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a> because <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code> has a\nsimpler interface. Also, unlike <a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a>,\n<a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> caches its values. This is useful especially when\ndealing with callables whose return values can change (e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.now</span></code> or\n<code class=\"docutils literal notranslate\"><span class=\"pre\">uuid.uuid4</span></code>):</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">uuid</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UUIDCommentForm</span><span class=\"p\">(</span><span class=\"n\">CommentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">identifier</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">UUIDField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">uuid</span><span class=\"o\">.</span><span class=\"n\">uuid4</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UUIDCommentForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">get_initial_for_field</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">],</span> <span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">UUID(&#39;972ca9e4-7bfe-4f5b-af7d-07b3aa306334&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">get_initial_for_field</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">],</span> <span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">UUID(&#39;1b411fab-844e-4dec-bd4f-e9b0495f04d0&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Using BoundField.initial, for comparison</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">UUID(&#39;28a09c59-5f00-4ed9-9179-a3b074fa9c30&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">UUID(&#39;28a09c59-5f00-4ed9-9179-a3b074fa9c30&#39;)</span>\n</code></pre></div>\n</section>\n<section id=\"checking-which-form-data-has-changed\">\n<h2>Kontroll av vilka formulärdata som har ändrats<a class=\"heading-anchor\" href=\"#checking-which-form-data-has-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.has_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_changed</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.has_changed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Använd metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> på ditt <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> när du behöver kontrollera om formulärdata har ändrats från de ursprungliga data.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">has_changed</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n<p>När formuläret skickas in rekonstruerar vi det och tillhandahåller originaldata så att jämförelsen kan göras:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">has_changed</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> blir <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om data från <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> skiljer sig från vad som angavs i <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> annars. Resultatet beräknas genom att anropa <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.has_changed\" title=\"django.forms.Field.has_changed\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.has_changed()</span></code></a> för varje fält i formuläret.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.changed_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">changed_data</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.changed_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">changed_data</span></code> returnerar en lista med namnen på de fält vars värden i formulärets bundna data (vanligtvis <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code>) skiljer sig från vad som angavs i <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a>. Det returnerar en tom lista om inga data skiljer sig åt.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">changed_data</span>\n<span class=\"go\">[&#39;subject&#39;, &#39;message&#39;]</span>\n</code></pre></div>\n</section>\n<section id=\"accessing-the-fields-from-the-form\">\n<h2>Åtkomst till fälten från formuläret<a class=\"heading-anchor\" href=\"#accessing-the-fields-from-the-form\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Du kan komma åt fälten i <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instansen från dess <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code>-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><span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">():</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">row</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac632510&gt;</span>\n<span class=\"go\">&lt;django.forms.fields.URLField object at 0x7ffaac632f90&gt;</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac3aa050&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac6324d0&gt;</span>\n</code></pre></div>\n<p>Du kan ändra fältet och <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> i <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instansen för att ändra hur det presenteras i formuläret:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Topic&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Topic:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n</code></pre></div>\n<p>Tänk på att inte ändra attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">base_fields</span></code> eftersom denna ändring kommer att påverka alla efterföljande <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code>-instanser inom samma Python-process:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">base_fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_suffix</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;?&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">another_f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">another_f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject?&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"accessing-clean-data\">\n<h2>Tillgång till ”rena” data<a class=\"heading-anchor\" href=\"#accessing-clean-data\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.cleaned_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">cleaned_data</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.cleaned_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Varje fält i en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-klass ansvarar inte bara för att validera data utan också för att ”rensa” dem - normalisera dem till ett enhetligt format. Det här är en bra funktion eftersom det gör att data för ett visst fält kan matas in på många olika sätt och alltid resultera i ett enhetligt resultat.</p>\n<p>Till exempel: normaliserar <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> indata till ett Python-objekt av typen <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code>. Oavsett om du skickar en sträng i formatet <code class=\"docutils literal notranslate\"><span class=\"pre\">'1994-07-15'</span></code>, ett <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code>-objekt eller ett antal andra format, kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> alltid att normalisera det till ett <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code>-objekt så länge det är giltigt.</p>\n<p>När du har skapat en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans med en uppsättning data och validerat den, kan du komma åt de rena data via dess <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code>-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><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;subject&#39;: &#39;hello&#39;, &#39;message&#39;: &#39;Hi there&#39;, &#39;contact_email&#39;: &#39;foo@example.com&#39;, &#39;urgent&#39;: True}</span>\n</code></pre></div>\n<p>Observera att alla textbaserade fält - t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code> - alltid omvandlar inmatningen till en sträng. Vi kommer att täcka kodningsimplikationerna senare i detta dokument.</p>\n<p>Om dina data <em>inte</em> valideras innehåller ordlistan <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> endast de giltiga fälten:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;message&#39;: &#39;Hi there&#39;, &#39;urgent&#39;: True}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> kommer alltid <em>bara</em> att innehålla en nyckel för fält som definieras i <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>, även om du skickar extra data när du definierar <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>. I det här exemplet skickar vi en massa extra fält till konstruktören <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code>, men <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> innehåller bara formulärets fält:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_1&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_2&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_3&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;baz&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>  <span class=\"c1\"># Doesn&#39;t contain extra_field_1, etc.</span>\n<span class=\"go\">{&#39;subject&#39;: &#39;hello&#39;, &#39;message&#39;: &#39;Hi there&#39;, &#39;contact_email&#39;: &#39;foo@example.com&#39;, &#39;urgent&#39;: True}</span>\n</code></pre></div>\n<p>When the <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> is valid, <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> will include a key and value for\n<em>all</em> its fields, even if the data didn’t include a value for some optional\nfields. In this example, the data dictionary doesn’t include a value for the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">nickname</span></code> field, but <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> includes it, with an empty value:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">OptionalPersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">nickname</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">OptionalPersonForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;first_name&#39;: &#39;John&#39;, &#39;last_name&#39;: &#39;Lennon&#39;, &#39;nickname&#39;: &#39;&#39;}</span>\n</code></pre></div>\n<p>In this above example, the <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> value for <code class=\"docutils literal notranslate\"><span class=\"pre\">nickname</span></code> is set to\nan empty string, because <code class=\"docutils literal notranslate\"><span class=\"pre\">nickname</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code>s\ntreat empty values as an empty string. Each field type knows what its ”blank”\nvalue is – e.g., for <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>, it’s <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> instead of the empty string.\nFor full details on each field’s behavior in this case, see the ”Empty value”\nnote for each field in the <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#built-in-fields\"><span class=\"std std-ref\">Inbyggda Field-klasser</span></a> section below.</p>\n<p>Du kan skriva kod för att utföra validering för vissa formulärfält (baserat på deras namn) eller för formuläret som helhet (med hänsyn till kombinationer av olika fält). Mer information om detta finns i <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/validation/\"><span class=\"doc\">Validering av formulär och fält</span></a>.</p>\n</section>\n<section id=\"outputting-forms-as-html\">\n<span id=\"ref-forms-api-outputting-html\"></span><h2>Utmatning av formulär som HTML<a class=\"heading-anchor\" href=\"#outputting-forms-as-html\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Den andra uppgiften för ett <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>-objekt är att rendera sig själv som HTML. För att göra det, <code class=\"docutils literal notranslate\"><span class=\"pre\">print</span></code> det:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_contact_email&quot;&gt;Contact email:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; maxlength=&quot;320&quot; required id=&quot;id_contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_urgent&quot;&gt;Urgent:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_urgent&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Om formuläret är bundet till data kommer HTML-utdata att innehålla dessa data på lämpligt sätt. Om ett fält t.ex. representeras av en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;&gt;</span></code>, kommer data att finnas i attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code>. Om ett fält representeras av en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;&gt;</span></code>, kommer HTML-texten att innehålla <code class=\"docutils literal notranslate\"><span class=\"pre\">checked</span></code> om så är lämpligt:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; value=&quot;hello&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_message&quot;&gt;Hi there&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_contact_email&quot;&gt;Contact email:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; value=&quot;foo@example.com&quot; maxlength=&quot;320&quot; required id=&quot;id_contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_urgent&quot;&gt;Urgent:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_urgent&quot; checked&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Denna standardutskrift omsluter varje fält med en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code>. Lägg märke till följande:</p>\n<ul class=\"simple\">\n<li><p>För flexibilitetens skull innehåller utdata <em>inte</em> taggarna&lt;form&gt;``` och <code class=\"docutils literal notranslate\"><span class=\"pre\">`&lt;/form&gt;</span> <span class=\"pre\">eller</span> <span class=\"pre\">taggen</span> <span class=\"pre\">``&lt;input</span> <span class=\"pre\">type=&quot;submit&quot;&gt;</span></code>. Det är ditt jobb att göra det.</p></li>\n<li><p>Varje fälttyp har en standard HTML-representation. <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> representeras av en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;&gt;</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code> av en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;email&quot;&gt;</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField(null=False)</span></code> representeras av en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;&gt;</span></code>. Observera att detta bara är förnuftiga standardvärden; du kan ange vilken HTML som ska användas för ett visst fält genom att använda widgets, som vi förklarar strax.</p></li>\n<li><p>HTML-namnet för varje tagg hämtas direkt från attributnamnet i klassen ”ContactForm”.</p></li>\n<li><p>The text label for each field – e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">'Subject:'</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">'Message:'</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'Contact</span> <span class=\"pre\">email:'</span></code> is generated from the field name by converting all\nunderscores to spaces and upper-casing the first letter. Again, note\nthese are merely sensible defaults; you can also specify labels manually.</p></li>\n<li><p>Varje textetikett omges av en HTML-tagg <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>, som pekar på lämpligt formulärfält via dess <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code>. Dess <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> genereras i sin tur genom att fältnamnet kompletteras med <code class=\"docutils literal notranslate\"><span class=\"pre\">'id_</span></code>. Attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> och taggarna <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> inkluderas i utdata som standard, för att följa bästa praxis, men du kan ändra detta beteende.</p></li>\n<li><p>Utdata använder HTML5-syntax, med <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;!DOCTYPE</span> <span class=\"pre\">html&gt;</span></code> som mål. Exempelvis används booleska attribut som <code class=\"docutils literal notranslate\"><span class=\"pre\">checked</span></code> i stället för XHTML-stilen <code class=\"docutils literal notranslate\"><span class=\"pre\">checked='checked'</span></code>.</p></li>\n</ul>\n<p>Även om <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> är standardutmatningsstilen när du <code class=\"docutils literal notranslate\"><span class=\"pre\">skriver</span> <span class=\"pre\">ut</span></code> ett formulär kan du anpassa utmatningen genom att använda din egen formulärmall som kan ställas in för hela webbplatsen, per formulär eller per instans. Se <span class=\"xref std std-ref\">återanvändbara-formulär-mallar</span>.</p>\n<section id=\"default-rendering\">\n<h3>Standard rendering<a class=\"heading-anchor\" href=\"#default-rendering\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Standardrenderingen när du <code class=\"docutils literal notranslate\"><span class=\"pre\">printar</span></code> ett formulär använder följande metoder och attribut.</p>\n<section id=\"template-name\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code><a class=\"heading-anchor\" href=\"#template-name\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Namnet på den mall som återges om formuläret omvandlas till en sträng, t.ex. via <code class=\"docutils literal notranslate\"><span class=\"pre\">print(form)</span></code> eller i en mall via <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">form</span> <span class=\"pre\">}}</span></code>.</p>\n<p>Som standard en egenskap som returnerar värdet av renderingsprogrammets <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.form_template_name\" title=\"django.forms.renderers.BaseRenderer.form_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form_template_name</span></code></a>. Du kan ställa in det som ett strängmallnamn för att åsidosätta det för en viss formulärklass.</p>\n</section>\n<section id=\"render\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">render()</span></code><a class=\"heading-anchor\" href=\"#render\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.render\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Renderingsmetoden anropas av <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span></code> samt metoderna <a class=\"reference internal\" href=\"#django.forms.Form.as_div\" title=\"django.forms.Form.as_div\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_div()</span></code></a>, <a class=\"reference internal\" href=\"#django.forms.Form.as_table\" title=\"django.forms.Form.as_table\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_table()</span></code></a>, <a class=\"reference internal\" href=\"#django.forms.Form.as_p\" title=\"django.forms.Form.as_p\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_p()</span></code></a> och <a class=\"reference internal\" href=\"#django.forms.Form.as_ul\" title=\"django.forms.Form.as_ul\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_ul()</span></code></a>. Alla argument är valfria och standardvärdena är:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <a class=\"reference internal\" href=\"#django.forms.Form.template_name\" title=\"django.forms.Form.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.Form.get_context\" title=\"django.forms.Form.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.get_context()</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.Form.default_renderer\" title=\"django.forms.Form.default_renderer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.default_renderer</span></code></a></p></li>\n</ul>\n<p>Genom att skicka <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> kan du anpassa den mall som används för bara ett enda anrop.</p>\n</section>\n<section id=\"get-context\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">get_context()</span></code><a class=\"heading-anchor\" href=\"#get-context\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.get_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returnerar mallkontexten för rendering av formuläret.</p>\n<p>Den tillgängliga kontexten är:</p>\n<ul class=\"simple\">\n<li><p>”Formulär”: Det bundna formuläret.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">fält</span></code>: Alla bundna fält, utom de dolda fälten.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">hidden_fields</span></code>: Alla dolda bundna fält.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">fel</span></code>: Alla formulärfel som inte är fältrelaterade eller som är relaterade till dolda fält.</p></li>\n</ul>\n</section>\n<section id=\"template-name-label\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_label</span></code><a class=\"heading-anchor\" href=\"#template-name-label\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den mall som används för att rendera ett fälts <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>, används vid anrop av <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a>. Kan ändras per formulär genom att åsidosätta detta attribut eller mer generellt genom att åsidosätta standardmallen, se även <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">Åsidosätta inbyggda formulärmallar</span></a>.</p>\n</section>\n</section>\n<section id=\"output-styles\">\n<h3>Utmatningsstilar<a class=\"heading-anchor\" href=\"#output-styles\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det rekommenderade tillvägagångssättet för att ändra formulärets utmatningsstil är att ange en anpassad formulärmall antingen för hela webbplatsen, per formulär eller per instans. Se <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/#reusable-form-templates\"><span class=\"std std-ref\">Återanvändbara formulärmallar</span></a> för exempel.</p>\n<p>Följande hjälpfunktioner tillhandahålls för bakåtkompatibilitet och är en proxy till <a class=\"reference internal\" href=\"#django.forms.Form.render\" title=\"django.forms.Form.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.render()</span></code></a> som skickar ett visst värde för <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Av de mallar och utdatastilar som tillhandahålls av ramverket rekommenderas standardmallen <code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code> framför versionerna <code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> eftersom mallen implementerar <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> för att gruppera relaterade indata och är lättare att navigera i för skärmläsaranvändare.</p>\n</aside>\n<p>Varje helper parar ihop en formulärmetod med ett attribut som anger det lämpliga mallnamnet.</p>\n<section id=\"as-div\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code><a class=\"heading-anchor\" href=\"#as-div\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_div\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_div</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_div\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den mall som används av <code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code>. Standard: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/div.html'</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_div\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_div</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_div\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code> renderar formuläret som en serie av <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> element, där varje <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> innehåller ett fält, t.ex:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… gives HTML like:</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\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</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=\"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_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">textarea</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">cols</span><span class=\"o\">=</span><span class=\"s\">&quot;40&quot;</span> <span class=\"na\">rows</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">textarea</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=\"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_contact_email&quot;</span><span class=\"p\">&gt;</span>Contact email:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;contact_email&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</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=\"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_urgent&quot;</span><span class=\"p\">&gt;</span>Urgent:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&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;urgent&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-p\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code><a class=\"heading-anchor\" href=\"#as-p\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_p\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_p</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_p\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den mall som används av <code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>. Standard: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/p.html'</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_p\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_p</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_p\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code> återger formuläret som en serie <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> taggar, där varje <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> innehåller ett fält:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_p</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… gives HTML like:</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\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">textarea</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">cols</span><span class=\"o\">=</span><span class=\"s\">&quot;40&quot;</span> <span class=\"na\">rows</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">textarea</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;</span>Contact email:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;contact_email&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;320&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;</span>Urgent:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&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;urgent&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-ul\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code><a class=\"heading-anchor\" href=\"#as-ul\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_ul\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_ul</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den mall som används av <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code>. Standard: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/ul.html'</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_ul\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_ul</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> renderar formuläret som en serie av <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> taggar, med varje <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> som innehåller ett fält. Den inkluderar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">*</span></a>inte*&lt;ul&gt;``` eller <code class=\"docutils literal notranslate\"><span class=\"pre\">`,&lt;/ul&gt;</span> <span class=\"pre\">så</span> <span class=\"pre\">att</span> <span class=\"pre\">du</span> <span class=\"pre\">kan</span> <span class=\"pre\">ange</span> <span class=\"pre\">HTML-attribut</span> <span class=\"pre\">på</span> <span class=\"pre\">``&lt;ul&gt;</span></code> för flexibilitet:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_ul</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… gives HTML like:</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\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">textarea</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">cols</span><span class=\"o\">=</span><span class=\"s\">&quot;40&quot;</span> <span class=\"na\">rows</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">textarea</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;</span>Contact email:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;contact_email&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;320&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;</span>Urgent:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span> <span class=\"p\">&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;urgent&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-table\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code><a class=\"heading-anchor\" href=\"#as-table\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_table\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_table</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_table\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Den mall som används av <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code>. Standard: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/table.html'</span></code>.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_table\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_table</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_table\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> återger formuläret som en HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;table&gt;</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_table</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… gives HTML like:</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\">tr</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">td</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;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">td</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">textarea</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">cols</span><span class=\"o\">=</span><span class=\"s\">&quot;40&quot;</span> <span class=\"na\">rows</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">textarea</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;</span>Contact email:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">td</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;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;contact_email&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;320&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;</span>Urgent:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">th</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">td</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;urgent&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"styling-required-or-erroneous-form-rows\">\n<span id=\"ref-forms-api-styling-form-rows\"></span><h3>Styling av nödvändiga eller felaktiga formulärrader<a class=\"heading-anchor\" href=\"#styling-required-or-erroneous-form-rows\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.error_css_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">error_css_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.error_css_class\"><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.Form.required_css_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">required_css_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.required_css_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Det är ganska vanligt att formatera formulärrader och fält som är obligatoriska eller har fel. Du kanske till exempel vill presentera obligatoriska formulärrader i fetstil och markera fel i rött.</p>\n<p>Klassen <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> har ett par hooks som du kan använda för att lägga till <code class=\"docutils literal notranslate\"><span class=\"pre\">class</span></code>-attribut till obligatoriska rader eller till rader med fel: ställ in attributen <a class=\"reference internal\" href=\"#django.forms.Form.error_css_class\" title=\"django.forms.Form.error_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.error_css_class</span></code></a> och/eller <a class=\"reference internal\" href=\"#django.forms.Form.required_css_class\" title=\"django.forms.Form.required_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.required_css_class</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">error_css_class</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;error&quot;</span>\n    <span class=\"n\">required_css_class</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;required&quot;</span>\n\n    <span class=\"c1\"># ... and the rest of your fields here</span>\n</code></pre></div>\n<p>När du har gjort det kommer raderna att få klasserna <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;error&quot;</span></code> och/eller <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;required&quot;</span></code>, efter behov. HTML kommer att se ut ungefär som:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_subject&quot; class=&quot;required&quot;&gt;Subject:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_message&quot; class=&quot;required&quot;&gt;Message:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_contact_email&quot; class=&quot;required&quot;&gt;Contact email:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_urgent&quot;&gt;Urgent:&lt;/label&gt; ...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;label class=&quot;required&quot; for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">legend_tag</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;legend class=&quot;required&quot; for=&quot;id_subject&quot;&gt;Subject:&lt;/legend&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;label for=&quot;id_subject&quot; class=&quot;foo required&quot;&gt;Subject:&lt;/label&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">legend_tag</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;legend for=&quot;id_subject&quot; class=&quot;foo required&quot;&gt;Subject:&lt;/legend&gt;</span>\n</code></pre></div>\n<p>Du kan ytterligare modifiera återgivningen av formulärrader genom att använda en <a class=\"reference internal\" href=\"#custom-boundfield\"><span class=\"std std-ref\">custom BoundField</span></a>.</p>\n</section>\n<section id=\"configuring-form-elements-html-id-attributes-and-label-tags\">\n<span id=\"ref-forms-api-configuring-label\"></span><h3>Konfigurera HTML-attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> och taggarna <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> för formulärelement<a class=\"heading-anchor\" href=\"#configuring-form-elements-html-id-attributes-and-label-tags\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.auto_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">auto_id</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.auto_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Som standard inkluderar metoderna för formuläråtergivning:</p>\n<ul class=\"simple\">\n<li><p>HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code>-attribut på formulärelementen.</p></li>\n<li><p>Motsvarande <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> taggar runt etiketterna. En HTML-tagg <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> anger vilken etikettext som är associerad med vilket formulärelement. Denna lilla förbättring gör formulär mer användbara och mer tillgängliga för hjälpmedel. Det är alltid en god idé att använda <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>-taggar.</p></li>\n</ul>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attribute values are generated by prepending <code class=\"docutils literal notranslate\"><span class=\"pre\">id_</span></code> to the form\nfield names. This behavior is configurable, though, if you want to change the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> convention or remove HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attributes and <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> tags\nentirely.</p>\n<p>Använd argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> i konstruktören <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> för att styra beteendet för <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> och etiketter. Detta argument måste vara <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> eller en sträng.</p>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, kommer formuläret inte att innehålla <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> taggar eller <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 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><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Contact email:&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Urgent:&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> är inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, kommer formulärutdata <em>att</em> inkludera <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> taggar och använda fältnamnet som <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> för varje formulärfält:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;contact_email&quot;&gt;Contact email:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required id=&quot;contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;urgent&quot;&gt;Urgent:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;urgent&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> är inställd på en sträng som innehåller formattecknet <code class=\"docutils literal notranslate\"><span class=\"pre\">'%s'</span></code>, kommer formulärutmatningen att innehålla <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> taggar och generera <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> attribut baserat på formatsträngen. Till exempel:, för en formatsträng <code class=\"docutils literal notranslate\"><span class=\"pre\">'field_%s'</span></code>, kommer ett fält med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code> att få <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code>-värdet <code class=\"docutils literal notranslate\"><span class=\"pre\">'field_subject'</span></code>. Vi fortsätter med vårt 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=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_contact_email&quot;&gt;Contact email:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required id=&quot;id_for_contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_urgent&quot;&gt;Urgent:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_for_urgent&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> sätts till något annat sant värde - t.ex. en sträng som inte innehåller <code class=\"docutils literal notranslate\"><span class=\"pre\">%s</span></code> - kommer biblioteket att agera som om <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> inställd på strängen <code class=\"docutils literal notranslate\"><span class=\"pre\">'id_%s'</span></code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.label_suffix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_suffix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.label_suffix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>En översättningsbar sträng (standard är ett kolon (<code class=\"docutils literal notranslate\"><span class=\"pre\">:</span></code>) på engelska) som läggs till efter ett etikettnamn när ett formulär renderas.</p>\n<p>Det är möjligt att anpassa det tecknet, eller utelämna det helt, med hjälp av parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_contact_email&quot;&gt;Contact email&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required id=&quot;id_for_contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_urgent&quot;&gt;Urgent&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_for_urgent&quot;&gt;&lt;/div&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot; -&gt;&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject -&amp;gt;&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message -&amp;gt;&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_contact_email&quot;&gt;Contact email -&amp;gt;&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required id=&quot;id_for_contact_email&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_urgent&quot;&gt;Urgent -&amp;gt;&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_for_urgent&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Observera att etikettens suffix endast läggs till om det sista tecknet i etiketten inte är ett skiljetecken (på engelska är det <code class=\"docutils literal notranslate\"><span class=\"pre\">.</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">!</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">:</span></code>).</p>\n<p>Fält kan också definiera sina egna <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.label_suffix\" title=\"django.forms.Field.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code></a>. Detta kommer att ha företräde framför <a class=\"reference internal\" href=\"#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.label_suffix</span></code></a>. Suffixet kan också åsidosättas vid körning med hjälp av parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> till <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a>/ <a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.use_required_attribute\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">use_required_attribute</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.use_required_attribute\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>När den är inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (standard) kommer obligatoriska formulärfält att ha HTML-attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>.</p>\n<p><span class=\"xref std std-doc\">Formsets &lt;/topics/forms/formsets&gt;`</span> instansiera formulär med <code class=\"docutils literal notranslate\"><span class=\"pre\">use_required_attribute=False</span></code> för att undvika felaktig webbläsarvalidering när du lägger till och tar bort formulär från en formset.</p>\n</section>\n<section id=\"configuring-the-rendering-of-a-form-s-widgets\">\n<h3>Konfigurera återgivningen av widgetar i ett formulär<a class=\"heading-anchor\" href=\"#configuring-the-rendering-of-a-form-s-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.default_renderer\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">default_renderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.default_renderer\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Specifies the <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/\"><span class=\"doc\">renderer</span></a> to use for the form.\nDefaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> which means to use the default renderer specified by the\n<a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> setting.</p>\n<p>Du kan ange detta som ett klassattribut när du deklarerar ditt formulär eller använda argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> i <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.__init__()</span></code>. 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=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">default_renderer</span> <span class=\"o\">=</span> <span class=\"n\">MyRenderer</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>eller:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">MyForm</span><span class=\"p\">(</span><span class=\"n\">renderer</span><span class=\"o\">=</span><span class=\"n\">MyRenderer</span><span class=\"p\">())</span>\n</code></pre></div>\n</section>\n<section id=\"notes-on-field-ordering\">\n<h3>Anmärkningar om fältbeställning<a class=\"heading-anchor\" href=\"#notes-on-field-ordering\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>In the <code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> shortcuts, the fields are\ndisplayed in the order in which you define them in your form class. For\nexample, in the <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> example, the fields are defined in the order\n<code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">contact_email</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">urgent</span></code>. To reorder the HTML\noutput, change the order in which those fields are listed in the class.</p>\n<p>Det finns flera andra sätt att skräddarsy beställningen:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.field_order\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">field_order</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.field_order\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.field_order=None</span></code>, vilket innebär att den ordning som du definierar fälten i formulärklassen behålls. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> är en lista med fältnamn ordnas fälten enligt listan och återstående fält läggs till enligt standardordningen. Okända fältnamn i listan ignoreras. Detta gör det möjligt att inaktivera ett fält i en underklass genom att ställa in det på <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> utan att behöva omdefiniera ordningen.</p>\n<p>Du kan också använda argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.field_order</span></code> till en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> för att åsidosätta fältordningen. Om en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> definierar <a class=\"reference internal\" href=\"#django.forms.Form.field_order\" title=\"django.forms.Form.field_order\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_order</span></code></a> <em>och</em> du inkluderar <code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> när du instansierar <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>, så kommer den senare <code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> att ha företräde.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.order_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">order_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_order</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.order_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Du kan omorganisera fälten när som helst med hjälp av <code class=\"docutils literal notranslate\"><span class=\"pre\">order_fields()</span></code> med en lista över fältnamn som i <a class=\"reference internal\" href=\"#django.forms.Form.field_order\" title=\"django.forms.Form.field_order\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_order</span></code></a>.</p>\n</section>\n<section id=\"how-errors-are-displayed\">\n<span id=\"form-error-display\"></span><h3>Hur fel visas<a class=\"heading-anchor\" href=\"#how-errors-are-displayed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du renderar ett bundet <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>-objekt, kommer renderingen automatiskt att köra formulärets validering om det inte redan har skett, och HTML-utmatningen kommer att innehålla valideringsfelen som en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul</span> <span class=\"pre\">class=&quot;errorlist&quot;&gt;</span></code>.</p>\n<p>Följande:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… gives HTML like:</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\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">ul</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;errorlist&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject_error&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>This field is required.<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">aria-invalid</span><span class=\"o\">=</span><span class=\"s\">&quot;true&quot;</span> <span class=\"na\">aria-describedby</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject_error&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</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=\"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_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">textarea</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">cols</span><span class=\"o\">=</span><span class=\"s\">&quot;40&quot;</span> <span class=\"na\">rows</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>Hi there<span class=\"p\">&lt;/</span><span class=\"nt\">textarea</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=\"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_contact_email&quot;</span><span class=\"p\">&gt;</span>Contact email:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">ul</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;errorlist&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email_error&quot;</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Enter a valid email address.<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;contact_email&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;invalid email address&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;320&quot;</span> <span class=\"na\">required</span> <span class=\"na\">aria-invalid</span><span class=\"o\">=</span><span class=\"s\">&quot;true&quot;</span> <span class=\"na\">aria-describedby</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email_error&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_contact_email&quot;</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=\"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_urgent&quot;</span><span class=\"p\">&gt;</span>Urgent:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&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;urgent&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_urgent&quot;</span> <span class=\"na\">checked</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Djangos standardformulärsmallar kommer att associera valideringsfel med deras inmatning genom att använda HTML-attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> när fältet har ett <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> och en anpassad <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> inte tillhandahålls. Om ett anpassat <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> anges när widgeten definieras kommer detta att åsidosätta standardvärdet.</p>\n<p>Om widgeten återges i en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> läggs <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> till i detta element, annars läggs det till i widgetens HTML-element (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input&gt;</span></code>).</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> lades till för att associera fel med dess input.</p>\n</aside>\n</section>\n<section id=\"customizing-the-error-list-format\">\n<span id=\"ref-forms-error-list-format\"></span><h3>Anpassa formatet för fellistan<a class=\"heading-anchor\" href=\"#customizing-the-error-list-format\"><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.ErrorList\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ErrorList</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">initlist</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error_class</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_id</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard använder formulär <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.utils.ErrorList</span></code> för att formatera valideringsfel. <code class=\"docutils literal notranslate\"><span class=\"pre\">ErrorList</span></code> är ett listliknande objekt där <code class=\"docutils literal notranslate\"><span class=\"pre\">initlist</span></code> är listan över fel. Dessutom har denna klass följande attribut och metoder.</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">field_id</span></code> har lagts till.</p>\n</aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.error_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">error_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.error_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>De CSS-klasser som ska användas vid rendering av fellistan. Alla angivna klasser läggs till i standardklassen <code class=\"docutils literal notranslate\"><span class=\"pre\">errorlist</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.renderer\">\n<span class=\"sig-name descname\"><span class=\"pre\">renderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.renderer\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Specifies the <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/\"><span class=\"doc\">renderer</span></a> to use for\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ErrorList</span></code>. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> which means to use the default\nrenderer specified by the <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> setting.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.field_id\">\n<span class=\"sig-name descname\"><span class=\"pre\">field_id</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.field_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>Ett <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> för det fält som felen avser. Detta gör att ett HTML-attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> kan läggas till i felmallen och är användbart för att associera felen med fältet. Standardmallen använder formatet <code class=\"docutils literal notranslate\"><span class=\"pre\">id=&quot;{{</span> <span class=\"pre\">field_id</span> <span class=\"pre\">}}_error&quot;</span></code> och ett värde tillhandahålls av <a class=\"reference internal\" href=\"#django.forms.Form.add_error\" title=\"django.forms.Form.add_error\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.add_error()</span></code></a> med hjälp av fältets <a class=\"reference internal\" href=\"#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">auto_id</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den mall som används vid anrop av <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span></code> eller <a class=\"reference internal\" href=\"#django.forms.ErrorList.render\" title=\"django.forms.ErrorList.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render()</span></code></a>. Som standard är detta <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/default.html'</span></code> som är en proxy för mallen <code class=\"docutils literal notranslate\"><span class=\"pre\">'ul.html'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.template_name_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den mall som används vid anrop av <a class=\"reference internal\" href=\"#django.forms.ErrorList.as_text\" title=\"django.forms.ErrorList.as_text\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_text()</span></code></a>. Som standard är detta <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/text.html'</span></code>. Den här mallen återger felen som en lista med punkter.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name_ul\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_ul</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.template_name_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den mall som används vid anrop av <a class=\"reference internal\" href=\"#django.forms.ErrorList.as_ul\" title=\"django.forms.ErrorList.as_ul\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code></a>. Som standard är detta <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/ul.html'</span></code>. Denna mall återger felen i <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> taggar med en omslags <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul&gt;</span></code> med CSS-klasserna som definieras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.error_class\" title=\"django.forms.ErrorList.error_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">error_class</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.get_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar kontext för återgivning av fel i en mall.</p>\n<p>Den tillgängliga kontexten är:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">errors</span></code> : En lista över fel.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">error_class</span></code> : En sträng med CSS-klasser.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.render\">\n<span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderingsmetoden anropas av <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span></code> samt av metoden <code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_ul`()</span></code>.</p>\n<p>Alla argument är valfria och kommer att användas som standard:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name\" title=\"django.forms.ErrorList.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.get_context\" title=\"django.forms.ErrorList.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context()</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.renderer\" title=\"django.forms.ErrorList.renderer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">renderer</span></code></a></p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.as_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_text</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.as_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderar fellistan med hjälp av den mall som definieras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name_text\" title=\"django.forms.ErrorList.template_name_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name_text</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.as_ul\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_ul</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.as_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderar fellistan med hjälp av den mall som definieras av <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name_ul\" title=\"django.forms.ErrorList.template_name_ul\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name_ul</span></code></a>.</p>\n</dd></dl>\n\n<p>Om du vill anpassa återgivningen av fel kan detta uppnås genom att åsidosätta attributet <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name\" title=\"django.forms.ErrorList.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> eller mer allmänt genom att åsidosätta standardmallen, se även <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">Åsidosätta inbyggda formulärmallar</span></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"more-granular-output\">\n<h2>Mer detaljerad utdata<a class=\"heading-anchor\" href=\"#more-granular-output\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Metoderna <code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> är genvägar - de är inte det enda sättet som ett formulärobjekt kan visas på.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BoundField</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Används för att visa HTML eller åtkomstattribut för ett enskilt fält i en <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans.</p>\n<p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> för detta objekt visar HTML för detta fält.</p>\n<p>Du kan använda <a class=\"reference internal\" href=\"#django.forms.Form.bound_field_class\" title=\"django.forms.Form.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.bound_field_class</span></code></a> och <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.bound_field_class\" title=\"django.forms.Field.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.bound_field_class</span></code></a> för att ange en annan <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>-klass per formulär respektive per fält.</p>\n<p>Se <a class=\"reference internal\" href=\"#custom-boundfield\"><span class=\"std std-ref\">Anpassa BoundField</span></a> för exempel på åsidosättande av en <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>.</p>\n</dd></dl>\n\n<p>Om du vill hämta ett enskilt <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> använder du syntaxen för ordboksuppslagning i formuläret med fältets namn som nyckel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;</span>\n</code></pre></div>\n<p>För att hämta alla <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>-objekt, iterera formuläret:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">boundfield</span> <span class=\"ow\">in</span> <span class=\"n\">form</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">boundfield</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;</span>\n<span class=\"go\">&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_message&quot;&gt;&lt;/textarea&gt;</span>\n<span class=\"go\">&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; maxlength=&quot;320&quot; required id=&quot;id_contact_email&quot;&gt;</span>\n<span class=\"go\">&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot; id=&quot;id_urgent&quot;&gt;</span>\n</code></pre></div>\n<p>Den fältspecifika utmatningen följer formulärobjektets inställning <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;&lt;/textarea&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_message&quot;&gt;&lt;/textarea&gt;</span>\n</code></pre></div>\n<section id=\"attributes-of-boundfield\">\n<h3>Attribut för <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code><a class=\"heading-anchor\" href=\"#attributes-of-boundfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.aria_describedby\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">aria_describedby</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.aria_describedby\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>Returnerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code>-referens för att associera ett fält med dess hjälptext och fel. Returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> om <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> är inställt i <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/widgets/#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Widget.attrs</span></code></a> för att bevara det användardefinierade attributet när formuläret renderas.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.auto_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">auto_id</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.auto_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>HTML ID-attributet för denna <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>. Returnerar en tom sträng om <a class=\"reference internal\" href=\"#django.forms.Form.auto_id\" title=\"django.forms.Form.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.auto_id</span></code></a> är <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">data</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna egenskap returnerar data för denna <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> som extraherats av widgetens <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/widgets/#django.forms.Widget.value_from_datadict\" title=\"django.forms.Widget.value_from_datadict\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">value_from_datadict()</span></code></a>-metod, eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> om den inte gavs:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">unbound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">unbound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"go\">None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">bound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;My Subject&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">bound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"go\">My Subject</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">errors</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.errors\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ett <a class=\"reference internal\" href=\"#ref-forms-error-list-format\"><span class=\"std std-ref\">listliknande objekt</span></a> som visas som en HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul</span> <span class=\"pre\">class=&quot;errorlist&quot;&gt;</span></code> när det skrivs ut:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;message&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;This field is required.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">[]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">str</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n</code></pre></div>\n<p>Vid rendering av ett fält med fel kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-invalid=&quot;true&quot;</span></code> att ställas in på fältets widget för att indikera att det finns ett fel för skärmläsaranvändare.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">field</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Formulärets <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>-instans från den formulärklass som denna <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> omsluter.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a>-instans som denna <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> är bunden till.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">help_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.help_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fältets <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.help_text\" title=\"django.forms.Field.help_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">help_text</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.html_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">html_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.html_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Det namn som kommer att användas i widgetens HTML-attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>. Det tar hänsyn till formuläret <a class=\"reference internal\" href=\"#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prefix</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.id_for_label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">id_for_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.id_for_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Använd den här egenskapen för att återge fältets ID. Till exempel: om du manuellt konstruerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> i din mall (trots att <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a> gör detta åt dig):</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\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.my_field.id_for_label</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">my_field</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>Som standard kommer detta att vara fältets namn med prefixet <code class=\"docutils literal notranslate\"><span class=\"pre\">id_</span></code> (”<code class=\"docutils literal notranslate\"><span class=\"pre\">id_my_field</span></code>” i exemplet ovan). Du kan ändra ID genom att ställa in <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/widgets/#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">attrs</span></code></a> på fältets widget. Till exempel:, om du deklarerar ett fält så hä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=\"n\">my_field</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;myFIELD&quot;</span><span class=\"p\">}))</span>\n</code></pre></div>\n<p>och med hjälp av mallen ovan, skulle rendera något liknande:</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\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;myFIELD&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">label</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;myFIELD&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;my_field&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.initial\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Använd <a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> för att hämta initialdata för ett formulärfält. Den hämtar data från <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.initial</span></code></a> om den finns, annars försöker den <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.initial</span></code></a>. Kallbara värden utvärderas. Se <a class=\"reference internal\" href=\"#ref-forms-initial-form-values\"><span class=\"std std-ref\">Initiala formvärden</span></a> för fler exempel.</p>\n<p><a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> cachar sitt returvärde, vilket är användbart särskilt när man har att göra med anropbara filer vars returvärden kan ändras (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.now</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">uuid.uuid4</span></code>):</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DatedCommentForm</span><span class=\"p\">(</span><span class=\"n\">CommentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">created</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">DatedCommentForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;created&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">datetime.datetime(2021, 7, 27, 9, 5, 54)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;created&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">datetime.datetime(2021, 7, 27, 9, 5, 54)</span>\n</code></pre></div>\n<p>Using <a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> is recommended over\n<a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.is_hidden\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_hidden</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.is_hidden\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om widgeten i denna <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> är dold.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fältets <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.label\" title=\"django.forms.Field.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label</span></code></a>. Detta används i <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på detta fält i formuläret:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n<span class=\"go\">subject</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n<span class=\"go\">message</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den mall som återges med <a class=\"reference internal\" href=\"#django.forms.BoundField.as_field_group\" title=\"django.forms.BoundField.as_field_group\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.as_field_group()</span></code></a>.</p>\n<p>En egenskap som returnerar värdet av <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.template_name\" title=\"django.forms.Field.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> om det är inställt på annat sätt <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.field_template_name\" title=\"django.forms.renderers.BaseRenderer.field_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_template_name</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.use_fieldset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">use_fieldset</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.use_fieldset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar värdet på attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">use_fieldset</span></code> för denna BoundField-widget.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.widget_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">widget_type</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.widget_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar det gemena klassnamnet på det omslutna fältets widget, med eventuella efterföljande <code class=\"docutils literal notranslate\"><span class=\"pre\">input</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> borttagna. Detta kan användas när man bygger formulär där layouten är beroende av widget-typen. Exempelvis:</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\">field</span> <span class=\"k\">in</span> <span class=\"nv\">form</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">field.widget_type</span> <span class=\"o\">==</span> <span class=\"s1\">&#39;checkbox&#39;</span> <span class=\"cp\">%}</span>\n        # render one way\n    <span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n        # render another way\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</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</section>\n<section id=\"methods-of-boundfield\">\n<h3>Metoder för <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code><a class=\"heading-anchor\" href=\"#methods-of-boundfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_field_group\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_field_group</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_field_group\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderar fältet med hjälp av <a class=\"reference internal\" href=\"#django.forms.BoundField.render\" title=\"django.forms.BoundField.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.render()</span></code></a> med standardvärden som renderar <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>, inklusive dess etikett, hjälptext och fel med hjälp av mallens <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.template_name\" title=\"django.forms.Field.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> om den är inställd annars <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.field_template_name\" title=\"django.forms.renderers.BaseRenderer.field_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_template_name</span></code></a></p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_hidden\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_hidden</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_hidden\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en HTML-sträng för att representera detta som en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;hidden&quot;&gt;</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">**kwargs</span></code> skickas till <a class=\"reference internal\" href=\"#django.forms.BoundField.as_widget\" title=\"django.forms.BoundField.as_widget\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_widget()</span></code></a>.</p>\n<p>Denna metod används främst internt. Du bör använda en widget istället.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_widget\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_widget</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widget</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">only_initial</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_widget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renders the field by rendering the passed widget, adding any HTML\nattributes passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code>. If no widget is specified, then the\nfield’s default widget will be used.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">only_initial</span></code> används av Django internals och bör inte ställas in explicit.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.css_classes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">css_classes</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_classes</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.css_classes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>När du använder Djangos renderingsgenvägar används CSS-klasser för att ange obligatoriska formulärfält eller fält som innehåller fel. Om du manuellt renderar ett formulär kan du komma åt dessa CSS-klasser med hjälp av metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">css_classes</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">css_classes</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;required&#39;</span>\n</code></pre></div>\n<p>Om du vill tillhandahålla ytterligare klasser utöver de fel- och required-klasser som kan krävas, kan du ange dessa klasser som ett argument:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">css_classes</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo bar&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo bar required&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.get_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar mallkontexten för rendering av fältet. Den tillgängliga kontexten är <code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> som är instansen för det bundna fältet.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.label_tag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_tag</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">contents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">label_suffix</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tag</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.label_tag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skapar en etikett för formulärfältet med hjälp av den mall som anges av <a class=\"reference internal\" href=\"#django.forms.Form.template_name_label\" title=\"django.forms.Form.template_name_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name_label</span></code></a>.</p>\n<p>Den tillgängliga kontexten är:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code>: Denna instans av <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">innehåll</span></code>: Som standard en konkatenerad sträng av <a class=\"reference internal\" href=\"#django.forms.BoundField.label\" title=\"django.forms.BoundField.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.label</span></code></a> och <a class=\"reference internal\" href=\"#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.label_suffix</span></code></a> (eller <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.label_suffix\" title=\"django.forms.Field.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.label_suffix</span></code></a>, om inställt). Detta kan åsidosättas med argumenten <code class=\"docutils literal notranslate\"><span class=\"pre\">contents</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code>: En <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> som innehåller <code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code>, <a class=\"reference internal\" href=\"#django.forms.Form.required_css_class\" title=\"django.forms.Form.required_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.required_css_class</span></code></a> och <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> genereras av fältets widget <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code> eller <a class=\"reference internal\" href=\"#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.auto_id</span></code></a>. Ytterligare attribut kan anges med argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">use_tag</span></code>: En boolean som är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om etiketten har ett <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code>. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> utelämnas <code class=\"docutils literal notranslate\"><span class=\"pre\">taggen</span></code> i standardmallen.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">tag</span></code>: En valfri sträng för att anpassa taggen, standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code>.</p></li>\n</ul>\n<aside class=\"admonition admonition-tip\">\n<p class=\"admonition-title\">Tips</p>\n<p>I din mall är <code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> en instans av <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code>. Därför kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">field.field</span></code> åt <a class=\"reference internal\" href=\"#django.forms.BoundField.field\" title=\"django.forms.BoundField.field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.field</span></code></a> som är det fält du deklarerar, t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">forms.CharField</span></code>.</p>\n</aside>\n<p>För att separat rendera etikett-taggen för ett formulärfält kan du anropa dess metod <code class=\"docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;</span>\n</code></pre></div>\n<p>Om du vill anpassa renderingen kan du göra det genom att åsidosätta attributet <a class=\"reference internal\" href=\"#django.forms.Form.template_name_label\" title=\"django.forms.Form.template_name_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name_label</span></code></a> eller mer allmänt genom att åsidosätta standardmallen, se även <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">Åsidosätta inbyggda formulärmallar</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.legend_tag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">legend_tag</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">contents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">label_suffix</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.legend_tag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Anropar <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a> med <code class=\"docutils literal notranslate\"><span class=\"pre\">tag='legend'</span></code> för att rendera etiketten med <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> taggar. Detta är användbart vid rendering av radio och flera kryssrutor widgets där <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> kan vara mer lämpligt än en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.render\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderingsmetoden anropas av <code class=\"docutils literal notranslate\"><span class=\"pre\">as_field_group</span></code>. Alla argument är valfria och används som standard:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <a class=\"reference internal\" href=\"#django.forms.BoundField.template_name\" title=\"django.forms.BoundField.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.template_name</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">kontext</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.BoundField.get_context\" title=\"django.forms.BoundField.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.get_context()</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: Värde som returneras av <a class=\"reference internal\" href=\"#django.forms.Form.default_renderer\" title=\"django.forms.Form.default_renderer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.default_renderer</span></code></a></p></li>\n</ul>\n<p>Genom att skicka <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> kan du anpassa den mall som används för bara ett enda anrop.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.value\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">value</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Använd den här metoden för att återge fältets råvärde så som det skulle återges av en <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">initial</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;welcome&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">unbound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">initial</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">bound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hi&quot;</span><span class=\"p\">},</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">initial</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">unbound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n<span class=\"go\">welcome</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">bound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n<span class=\"go\">hi</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"customizing-boundfield\">\n<span id=\"custom-boundfield\"></span><h2>Anpassa <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code><a class=\"heading-anchor\" href=\"#customizing-boundfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.bound_field_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">bound_field_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.bound_field_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>Definiera en anpassad <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a>-klass som ska användas när formuläret renderas. Detta har företräde framför <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.bound_field_class\" title=\"django.forms.renderers.BaseRenderer.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BaseRenderer.bound_field_class</span></code></a> på projektnivå (tillsammans med en anpassad <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a>), men kan åsidosättas av <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.bound_field_class\" title=\"django.forms.Field.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.bound_field_class</span></code></a> på fältnivå.</p>\n<p>Om den inte definieras som en klassvariabel kan <code class=\"docutils literal notranslate\"><span class=\"pre\">bound_field_class</span></code> ställas in via argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">bound_field_class</span></code> i konstruktören <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> eller <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>.</p>\n<p>For compatibility reasons, a custom form field can still override\n<a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field.get_bound_field\" title=\"django.forms.Field.get_bound_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.get_bound_field()</span></code></a> to use a custom class, though any of the\nprevious options are preferred.</p>\n<p>Du kanske vill använda en anpassad <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> om du behöver komma åt ytterligare information om ett formulärfält i en mall och det inte räcker att använda en underklass av <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>.</p>\n<p>Om du till exempel har en <code class=\"docutils literal notranslate\"><span class=\"pre\">GPSCoordinatesField</span></code> och vill kunna få tillgång till ytterligare information om koordinaterna i en mall, kan detta implementeras enligt följande:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GPSCoordinatesBoundField</span><span class=\"p\">(</span><span class=\"n\">BoundField</span><span class=\"p\">):</span>\n    <span class=\"nd\">@property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">country</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Return the country the coordinates lie in or None if it can&#39;t be</span>\n<span class=\"sd\">        determined.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n        <span class=\"n\">value</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">()</span>\n        <span class=\"k\">if</span> <span class=\"n\">value</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">get_country_from_coordinates</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">)</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"kc\">None</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GPSCoordinatesField</span><span class=\"p\">(</span><span class=\"n\">Field</span><span class=\"p\">):</span>\n    <span class=\"n\">bound_field_class</span> <span class=\"o\">=</span> <span class=\"n\">GPSCoordinatesBoundField</span>\n</code></pre></div>\n<p>Nu kan du få tillgång till landet i en mall med <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">form.coordinates.country</span> <span class=\"pre\">}}</span></code>.</p>\n<p>Du kanske också vill anpassa standardrenderingen av formulärfältsmallen. Du kan t.ex. åsidosätta <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.label_tag()</span></code></a> för att lägga till en anpassad klass:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">StyledLabelBoundField</span><span class=\"p\">(</span><span class=\"n\">BoundField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">label_tag</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">contents</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">tag</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">attrs</span> <span class=\"o\">=</span> <span class=\"n\">attrs</span> <span class=\"ow\">or</span> <span class=\"p\">{}</span>\n        <span class=\"n\">attrs</span><span class=\"p\">[</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;wide&quot;</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">(</span><span class=\"n\">contents</span><span class=\"p\">,</span> <span class=\"n\">attrs</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"p\">,</span> <span class=\"n\">tag</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UserForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">bound_field_class</span> <span class=\"o\">=</span> <span class=\"n\">StyledLabelBoundField</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">CharField</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Detta skulle uppdatera standardrenderingen av formuläret:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UserForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;label for=&quot;id_name&quot; class=&quot;wide&quot;&gt;Name:&lt;/label&gt;</span>\n</code></pre></div>\n<p>För att lägga till en CSS-klass till det omslutande HTML-elementet för alla fält kan en <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> åsidosättas för att returnera en annan samling CSS-klasser:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">WrappedBoundField</span><span class=\"p\">(</span><span class=\"n\">BoundField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">css_classes</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">extra_classes</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">parent_css_classes</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">css_classes</span><span class=\"p\">(</span><span class=\"n\">extra_classes</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"sa\">f</span><span class=\"s2\">&quot;field-class </span><span class=\"si\">{</span><span class=\"n\">parent_css_classes</span><span class=\"si\">}</span><span class=\"s2\">&quot;</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UserForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">bound_field_class</span> <span class=\"o\">=</span> <span class=\"n\">WrappedBoundField</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">CharField</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Detta skulle uppdatera formulärets rendering enligt följande:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UserForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div class=&quot;field-class&quot;&gt;&lt;label for=&quot;id_name&quot;&gt;Name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;name&quot; required id=&quot;id_name&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Alternativt, för att åsidosätta klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> på projektnivå, kan <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.bound_field_class\" title=\"django.forms.renderers.BaseRenderer.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BaseRenderer.bound_field_class</span></code></a> definieras på en anpassad <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a>:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">mysite/renderers.py</span></code></figcaption>\n<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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms.renderers</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DjangoTemplates</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CustomBoundField</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CustomRenderer</span><span class=\"p\">(</span><span class=\"n\">DjangoTemplates</span><span class=\"p\">):</span>\n    <span class=\"n\">bound_field_class</span> <span class=\"o\">=</span> <span class=\"n\">CustomBoundField</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">settings.py</span></code></figcaption>\n<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=\"n\">FORM_RENDERER</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;mysite.renderers.CustomRenderer&quot;</span>\n</code></pre></figure>\n</section>\n<section id=\"binding-uploaded-files-to-a-form\">\n<span id=\"binding-uploaded-files\"></span><h2>Binder uppladdade filer till ett formulär<a class=\"heading-anchor\" href=\"#binding-uploaded-files-to-a-form\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Att hantera formulär som har fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> är lite mer komplicerat än ett vanligt formulär.</p>\n<p>För det första, för att ladda upp filer måste du se till att ditt <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> element korrekt definierar <code class=\"docutils literal notranslate\"><span class=\"pre\">enctype</span></code> som <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;multipart/form-data&quot;</span></code>:</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\">form</span> <span class=\"na\">enctype</span><span class=\"o\">=</span><span class=\"s\">&quot;multipart/form-data&quot;</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>För det andra måste du binda filinformationen när du använder formuläret. Fildata hanteras separat från normal formulärdata, så när ditt formulär innehåller en <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> måste du ange ett andra argument när du binder ditt formulär. Så om vi utökar vårt ContactForm så att det innehåller en <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> som heter <code class=\"docutils literal notranslate\"><span class=\"pre\">mugshot</span></code>, måste vi binda de fildata som innehåller mugshot-bilden:</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=\"go\"># Bound form with an image field</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.files.uploadedfile</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleUploadedFile</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;contact_email&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;urgent&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">file_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;mugshot&quot;</span><span class=\"p\">:</span> <span class=\"n\">SimpleUploadedFile</span><span class=\"p\">(</span><span class=\"s2\">&quot;face.jpg&quot;</span><span class=\"p\">,</span> <span class=\"sa\">b</span><span class=\"s2\">&quot;file data&quot;</span><span class=\"p\">)}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">file_data</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>I praktiken anger du vanligtvis <code class=\"docutils literal notranslate\"><span class=\"pre\">request.FILES</span></code> som källa för fildata (precis som du använder <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> som källa för formulärdata):</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=\"go\"># Bound form with an image field, data from the request</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">FILES</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Att konstruera ett obundet formulär är samma sak som alltid - utelämna både formulärdata <em>och</em> fildata:</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=\"go\"># Unbound form with an image field</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"testing-for-multipart-forms\">\n<h3>Testning av formulär med flera delar<a class=\"heading-anchor\" href=\"#testing-for-multipart-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_multipart\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_multipart</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_multipart\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Om du skriver återanvändbara vyer eller mallar kanske du inte vet i förväg om ditt formulär är ett flerdelat formulär eller inte. Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">is_multipart()</span></code> talar om för dig om formuläret kräver multipart-kodning för inlämning:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_multipart</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>Här är ett exempel på hur du kan använda detta i en mall:</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\">if</span> <span class=\"nv\">form.is_multipart</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">enctype</span><span class=\"o\">=</span><span class=\"s\">&quot;multipart/form-data&quot;</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{{</span> <span class=\"nv\">form</span> <span class=\"cp\">}}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"subclassing-forms\">\n<h2>Underklassificering av formulär<a class=\"heading-anchor\" href=\"#subclassing-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Om du har flera <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>-klasser som delar fält kan du använda subklassning för att ta bort redundans.</p>\n<p>När du subklassar en anpassad <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code>-klass kommer den resulterande subklassen att innehålla alla fält i den eller de överordnade klasserna, följt av de fält som du definierar i subklassen.</p>\n<p>In this example, <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactFormWithDepartment</span></code> contains all the fields from\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code>, plus an additional field, <code class=\"docutils literal notranslate\"><span class=\"pre\">department</span></code>. The <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code>\nfields are ordered first:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactFormWithDepartment</span><span class=\"p\">(</span><span class=\"n\">ContactForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">department</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithDepartment</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Contact email:&lt;input type=&quot;email&quot; name=&quot;contact_email&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Urgent:&lt;input type=&quot;checkbox&quot; name=&quot;urgent&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Department:&lt;input type=&quot;text&quot; name=&quot;department&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Det är möjligt att subklassa flera formulär och behandla formulär som mixins. I det här exemplet är <code class=\"docutils literal notranslate\"><span class=\"pre\">BeatleForm</span></code> en underklass till både <code class=\"docutils literal notranslate\"><span class=\"pre\">PersonForm</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">InstrumentForm</span></code> (i den ordningen), och dess fältlista innehåller fälten från de överordnade klasserna:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">InstrumentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">instrument</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BeatleForm</span><span class=\"p\">(</span><span class=\"n\">InstrumentForm</span><span class=\"p\">,</span> <span class=\"n\">PersonForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">haircut_type</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">BeatleForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;First name:&lt;input type=&quot;text&quot; name=&quot;first_name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Last name:&lt;input type=&quot;text&quot; name=&quot;last_name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Instrument:&lt;input type=&quot;text&quot; name=&quot;instrument&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Haircut type:&lt;input type=&quot;text&quot; name=&quot;haircut_type&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Det är möjligt att deklarativt ta bort ett <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> som ärvts från en överordnad klass genom att ställa in namnet på fältet till <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i underklassen. Ett 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=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ParentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildForm</span><span class=\"p\">(</span><span class=\"n\">ParentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"gp\">...</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">ChildForm</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;age&#39;]</span>\n</code></pre></div>\n</section>\n<section id=\"prefixes-for-forms\">\n<span id=\"form-prefix\"></span><h2>Prefix för former<a class=\"heading-anchor\" href=\"#prefixes-for-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.prefix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">prefix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.prefix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Du kan lägga in flera Django formulär i en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> tagg. För att ge varje <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> sitt eget namnområde, använd nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">prefix</span></code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">mother</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">prefix</span><span class=\"o\">=</span><span class=\"s2\">&quot;mother&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">father</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">prefix</span><span class=\"o\">=</span><span class=\"s2\">&quot;father&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">mother</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_mother-first_name&quot;&gt;First name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;mother-first_name&quot; required id=&quot;id_mother-first_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_mother-last_name&quot;&gt;Last name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;mother-last_name&quot; required id=&quot;id_mother-last_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">father</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_father-first_name&quot;&gt;First name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;father-first_name&quot; required id=&quot;id_father-first_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_father-last_name&quot;&gt;Last name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;father-last_name&quot; required id=&quot;id_father-last_name&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>Prefixet kan också anges på formulärklassen:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"o\">...</span>\n<span class=\"gp\">... </span>    <span class=\"n\">prefix</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;person&quot;</span>\n<span class=\"gp\">...</span>\n</code></pre></div>\n</section>","rootId":"module-django.forms","toc":[{"title":"Inbundna och obundna formulär","anchor":"bound-and-unbound-forms","children":[]},{"title":"Använda formulär för att validera data","anchor":"using-forms-to-validate-data","children":[{"title":"Beteende för obundna formulär","anchor":"behavior-of-unbound-forms","children":[]}]},{"title":"Initiala formvärden","anchor":"initial-form-values","children":[]},{"title":"Kontroll av vilka formulärdata som har ändrats","anchor":"checking-which-form-data-has-changed","children":[]},{"title":"Åtkomst till fälten från formuläret","anchor":"accessing-the-fields-from-the-form","children":[]},{"title":"Tillgång till ”rena” data","anchor":"accessing-clean-data","children":[]},{"title":"Utmatning av formulär som HTML","anchor":"outputting-forms-as-html","children":[{"title":"Standard rendering","anchor":"default-rendering","children":[{"title":"template_name","anchor":"template-name","children":[]},{"title":"render()","anchor":"render","children":[]},{"title":"get_context()","anchor":"get-context","children":[]},{"title":"template_name_label","anchor":"template-name-label","children":[]}]},{"title":"Utmatningsstilar","anchor":"output-styles","children":[{"title":"as_div()","anchor":"as-div","children":[]},{"title":"as_p()","anchor":"as-p","children":[]},{"title":"as_ul()","anchor":"as-ul","children":[]},{"title":"as_table()","anchor":"as-table","children":[]}]},{"title":"Styling av nödvändiga eller felaktiga formulärrader","anchor":"styling-required-or-erroneous-form-rows","children":[]},{"title":"Konfigurera HTML-attributen id och taggarna <label> för formulärelement","anchor":"configuring-form-elements-html-id-attributes-and-label-tags","children":[]},{"title":"Konfigurera återgivningen av widgetar i ett formulär","anchor":"configuring-the-rendering-of-a-form-s-widgets","children":[]},{"title":"Anmärkningar om fältbeställning","anchor":"notes-on-field-ordering","children":[]},{"title":"Hur fel visas","anchor":"how-errors-are-displayed","children":[]},{"title":"Anpassa formatet för fellistan","anchor":"customizing-the-error-list-format","children":[]}]},{"title":"Mer detaljerad utdata","anchor":"more-granular-output","children":[{"title":"Attribut för BoundField","anchor":"attributes-of-boundfield","children":[]},{"title":"Metoder för BoundField","anchor":"methods-of-boundfield","children":[]}]},{"title":"Anpassa BoundField","anchor":"customizing-boundfield","children":[]},{"title":"Binder uppladdade filer till ett formulär","anchor":"binding-uploaded-files-to-a-form","children":[{"title":"Testning av formulär med flera delar","anchor":"testing-for-multipart-forms","children":[]}]},{"title":"Underklassificering av formulär","anchor":"subclassing-forms","children":[]},{"title":"Prefix för former","anchor":"prefixes-for-forms","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.0/ref/"},{"docname":"ref/forms/index","title":"Formulär","url":"/sv/6.0/ref/forms/"}],"prev":{"docname":"ref/forms/index","title":"Formulär","url":"/sv/6.0/ref/forms/"},"next":{"docname":"ref/forms/fields","title":"Formulärfält","url":"/sv/6.0/ref/forms/fields/"},"formats":{"html":"/sv/6.0/ref/forms/api/","markdown":"/sv/6.0/ref/forms/api.md","json":"/sv/6.0/ref/forms/api.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/forms/api.txt","official":"https://docs.djangoproject.com/sv/6.0/ref/forms/api/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}