{"title":"Utsikt över basen","version":"6.1","locale":"sv","docname":"ref/class-based-views/base","url":"/sv/6.1/ref/class-based-views/base/","canonical":"https://djangodocs.dev/sv/6.1/ref/class-based-views/base/","summary":"Följande tre klasser tillhandahåller mycket av den funktionalitet som behövs för att skapa Django-vyer.","html":"<h1>Utsikt över basen<a class=\"heading-anchor\" href=\"#base-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Följande tre klasser tillhandahåller mycket av den funktionalitet som behövs för att skapa Django-vyer. Du kan tänka på dem som <em>föräldrar</em> vyer, som kan användas av sig själva eller ärvas från. De kanske inte tillhandahåller alla funktioner som krävs för projekt, i vilket fall det finns Mixins och generiska klassbaserade vyer.</p>\n<p>Många av Djangos inbyggda klassbaserade vyer ärver från andra klassbaserade vyer eller olika mixins. Eftersom denna arvskedja är mycket viktig dokumenteras förfädersklasserna under avsnittets titel <strong>Förfäder (MRO)</strong>. MRO är en akronym för Method Resolution Order.</p>\n<section id=\"view\">\n<h2><code class=\"docutils literal notranslate\">View</code><a class=\"heading-anchor\" href=\"#view\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.base.</span><span class=\"sig-name descname\">View</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Basklassen för vyn. Alla andra klassbaserade vyer ärver från denna basklass. Det är inte strikt en generisk vy och kan därför också importeras från <code class=\"docutils literal notranslate\">django.views</code>.</p>\n<p><strong>Flödesschema för metod</strong></p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\">setup()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\">dispatch()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.http_method_not_allowed\" title=\"django.views.generic.base.View.http_method_not_allowed\"><code class=\"xref py py-meth docutils literal notranslate\">http_method_not_allowed()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.options\" title=\"django.views.generic.base.View.options\"><code class=\"xref py py-meth docutils literal notranslate\">options()</code></a></p></li>\n</ol>\n<p><strong>Exempel på views.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponse\n<span class=\"kn\">from</span> <span class=\"nn\">django.views</span> <span class=\"kn\">import</span> View\n\n\n<span class=\"k\">class</span> <span class=\"nc\">MyView</span><span class=\"p\">(</span>View<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"nf\">get</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> request<span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">):</span>\n        <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span><span class=\"s2\">&quot;Hello, World!&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><strong>Exempel urls.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n\n<span class=\"kn\">from</span> <span class=\"nn\">myapp.views</span> <span class=\"kn\">import</span> MyView\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;mine/&quot;</span><span class=\"p\">,</span> MyView<span class=\"o\">.</span>as_view<span class=\"p\">(),</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;my-view&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>Attribut</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.http_method_names\">\n<span class=\"sig-name descname\">http_method_names</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.http_method_names\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Listan över HTTP-metodnamn som den här vyn accepterar.</p>\n<p>Standard:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">[</span><span class=\"s2\">&quot;get&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;post&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;put&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;patch&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;delete&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;head&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;options&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;trace&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</dd></dl>\n\n<p><strong>Metoder</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.as_view\">\n<em class=\"property\"><span class=\"k\">classmethod</span> </em><span class=\"sig-name descname\">as_view</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>initkwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.as_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en anropsbar vy som tar emot en begäran och returnerar ett svar:</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>response <span class=\"o\">=</span> MyView<span class=\"o\">.</span>as_view<span class=\"p\">()(</span>request<span class=\"p\">)</span>\n</code></pre></div>\n<p>Den returnerade vyn har attributen <code class=\"docutils literal notranslate\">view_class</code> och <code class=\"docutils literal notranslate\">view_initkwargs</code>.</p>\n<p>När vyn anropas under request/response-cykeln, tilldelar metoden <a class=\"reference internal\" href=\"#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\">setup()</code></a> <a class=\"reference internal\" href=\"/sv/6.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> till vyns attribut <code class=\"docutils literal notranslate\">request</code>, och alla positionella och/eller nyckelordsargument <a class=\"reference internal\" href=\"/sv/6.1/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">fångade från URL-mönstret</span></a> till attributen <code class=\"docutils literal notranslate\">args</code> respektive <code class=\"docutils literal notranslate\">kwargs</code>. Sedan anropas <a class=\"reference internal\" href=\"#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\">dispatch()</code></a>.</p>\n<p>Om en subklass av <code class=\"docutils literal notranslate\">View</code> definierar asynkrona (<code class=\"docutils literal notranslate\">async def</code>) metodhanterare, kommer <code class=\"docutils literal notranslate\">as_view()</code> att markera den returnerade anropbara funktionen som en coroutine-funktion. Ett <code class=\"docutils literal notranslate\">ImproperlyConfigured</code> undantag kommer att uppstå om både asynkrona (<code class=\"docutils literal notranslate\">async def</code>) och synkrona (<code class=\"docutils literal notranslate\">def</code>) hanterare är definierade på en enda view-klass.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.setup\">\n<span class=\"sig-name descname\">setup</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.setup\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Utför initialisering av nyckelvyn före <a class=\"reference internal\" href=\"#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\">dispatch()</code></a>.</p>\n<p>Tilldelar <a class=\"reference internal\" href=\"/sv/6.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> till vyns <code class=\"docutils literal notranslate\">request</code>-attribut, och alla positionella och/eller nyckelordsargument <a class=\"reference internal\" href=\"/sv/6.1/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">fångade från URL-mönstret</span></a> till <code class=\"docutils literal notranslate\">args</code>- respektive <code class=\"docutils literal notranslate\">kwargs</code>-attributen.</p>\n<p>Om du åsidosätter den här metoden måste du anropa <code class=\"docutils literal notranslate\">super()</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.dispatch\">\n<span class=\"sig-name descname\">dispatch</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.dispatch\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>View-delen av vyn - den metod som tar emot ett <code class=\"docutils literal notranslate\">request</code>-argument plus argument och returnerar ett HTTP-svar.</p>\n<p>Standardimplementeringen inspekterar HTTP-metoden och försöker delegera till en metod som matchar HTTP-metoden; en <code class=\"docutils literal notranslate\">GET</code> kommer att delegeras till <code class=\"docutils literal notranslate\">get()</code>, en <code class=\"docutils literal notranslate\">POST</code> till <code class=\"docutils literal notranslate\">post()</code>, och så vidare.</p>\n<p>Som standard kommer en <code class=\"docutils literal notranslate\">HEAD</code>-förfrågan att delegeras till <code class=\"docutils literal notranslate\">get()</code>. Om du behöver hantera <code class=\"docutils literal notranslate\">HEAD</code>-förfrågningar på ett annat sätt än <code class=\"docutils literal notranslate\">GET</code>, kan du åsidosätta <code class=\"docutils literal notranslate\">head()</code>-metoden. Se <a class=\"reference internal\" href=\"/sv/6.1/topics/class-based-views/#supporting-other-http-methods\"><span class=\"std std-ref\">Stöd för andra HTTP-metoder</span></a> för ett exempel.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.http_method_not_allowed\">\n<span class=\"sig-name descname\">http_method_not_allowed</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.http_method_not_allowed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Om vyn anropades med en HTTP-metod som den inte stöder, anropas den här metoden i stället.</p>\n<p>Standardimplementeringen returnerar <code class=\"docutils literal notranslate\">HttpResponseNotAllowed</code> med listan över tillåtna metoder i rubriken <code class=\"docutils literal notranslate\">Allow</code>, enligt kraven i <span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6.5.5\"><strong>RFC 7231</strong></a>. Svarstexten är tom.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.View.options\">\n<span class=\"sig-name descname\">options</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.View.options\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Hanterar svar på förfrågningar om HTTP-verbet OPTIONS. Returnerar ett svar med rubriken <code class=\"docutils literal notranslate\">Allow</code> som innehåller en lista över vyns tillåtna HTTP-metodnamn.</p>\n<p>Om de andra HTTP-metodhanterarna i klassen är asynkrona (<code class=\"docutils literal notranslate\">async def</code>) kommer svaret att paketeras i en coroutine-funktion för användning med <code class=\"docutils literal notranslate\">await</code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"templateview\">\n<h2><code class=\"docutils literal notranslate\">TemplateView</code><a class=\"heading-anchor\" href=\"#templateview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateView\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.base.</span><span class=\"sig-name descname\">TemplateView</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renderar en given mall med kontexten som innehåller parametrar som fångas upp i URL:en.</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Denna vy ärver metoder och attribut från följande vyer:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/sv/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.TemplateResponseMixin</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin\" title=\"django.views.generic.base.ContextMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.ContextMixin</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.View</code></a></p></li>\n</ul>\n<p><strong>Flödesschema för metod</strong></p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\">setup()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\">dispatch()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.http_method_not_allowed\" title=\"django.views.generic.base.View.http_method_not_allowed\"><code class=\"xref py py-meth docutils literal notranslate\">http_method_not_allowed()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin.get_context_data\" title=\"django.views.generic.base.ContextMixin.get_context_data\"><code class=\"xref py py-meth docutils literal notranslate\">get_context_data()</code></a></p></li>\n</ol>\n<p><strong>Exempel på views.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.views.generic.base</span> <span class=\"kn\">import</span> TemplateView\n\n<span class=\"kn\">from</span> <span class=\"nn\">articles.models</span> <span class=\"kn\">import</span> Article\n\n\n<span class=\"k\">class</span> <span class=\"nc\">HomePageView</span><span class=\"p\">(</span>TemplateView<span class=\"p\">):</span>\n    template_name <span class=\"o\">=</span> <span class=\"s2\">&quot;home.html&quot;</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">):</span>\n        context <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span>get_context_data<span class=\"p\">(</span><span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n        context<span class=\"p\">[</span><span class=\"s2\">&quot;latest_articles&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> Article<span class=\"o\">.</span>objects<span class=\"o\">.</span>all<span class=\"p\">()[:</span><span class=\"mi\">5</span><span class=\"p\">]</span>\n        <span class=\"k\">return</span> context\n</code></pre></div>\n<p><strong>Exempel urls.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n\n<span class=\"kn\">from</span> <span class=\"nn\">myapp.views</span> <span class=\"kn\">import</span> HomePageView\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> HomePageView<span class=\"o\">.</span>as_view<span class=\"p\">(),</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;home&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>Kontext</strong></p>\n<ul class=\"simple\">\n<li><p>Fylls på (genom <a class=\"reference internal\" href=\"/sv/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin\" title=\"django.views.generic.base.ContextMixin\"><code class=\"xref py py-class docutils literal notranslate\">ContextMixin</code></a>) med nyckelordsargumenten som fångats från URL-mönstret som serverade vyn.</p></li>\n<li><p>Du kan också lägga till kontext med hjälp av <a class=\"reference internal\" href=\"/sv/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin.extra_context\" title=\"django.views.generic.base.ContextMixin.extra_context\"><code class=\"xref py py-attr docutils literal notranslate\">extra_context</code></a> nyckelordsargument för <a class=\"reference internal\" href=\"#django.views.generic.base.View.as_view\" title=\"django.views.generic.base.View.as_view\"><code class=\"xref py py-meth docutils literal notranslate\">as_view()</code></a>.</p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"redirectview\">\n<h2><code class=\"docutils literal notranslate\">RedirectView</code><a class=\"heading-anchor\" href=\"#redirectview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.base.</span><span class=\"sig-name descname\">RedirectView</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Omdirigeringar till en viss URL.</p>\n<p>Den angivna URL:en kan innehålla strängformatering i ordboksstil, som interpoleras mot de parametrar som fångas upp i URL:en. Eftersom nyckelordsinterpolering <em>alltid</em> görs (även om inga argument skickas in), måste alla <code class=\"docutils literal notranslate\">&quot;%&quot;</code>-tecken i webbadressen skrivas som <code class=\"docutils literal notranslate\">&quot;%%&quot;</code> så att Python konverterar dem till ett enda procenttecken vid utmatning.</p>\n<p>Om den angivna URL:en är <code class=\"docutils literal notranslate\">None</code> kommer Django att returnera en <code class=\"docutils literal notranslate\">HttpResponseGone</code> (410).</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Denna vy ärver metoder och attribut från följande vy:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.View</code></a></p></li>\n</ul>\n<p><strong>Flödesschema för metod</strong></p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\">setup()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\">dispatch()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.View.http_method_not_allowed\" title=\"django.views.generic.base.View.http_method_not_allowed\"><code class=\"xref py py-meth docutils literal notranslate\">http_method_not_allowed()</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.get_redirect_url\" title=\"django.views.generic.base.RedirectView.get_redirect_url\"><code class=\"xref py py-meth docutils literal notranslate\">get_redirect_url()</code></a></p></li>\n</ol>\n<p><strong>Exempel på views.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.shortcuts</span> <span class=\"kn\">import</span> get_object_or_404\n<span class=\"kn\">from</span> <span class=\"nn\">django.views.generic.base</span> <span class=\"kn\">import</span> RedirectView\n\n<span class=\"kn\">from</span> <span class=\"nn\">articles.models</span> <span class=\"kn\">import</span> Article\n\n\n<span class=\"k\">class</span> <span class=\"nc\">ArticleCounterRedirectView</span><span class=\"p\">(</span>RedirectView<span class=\"p\">):</span>\n    permanent <span class=\"o\">=</span> <span class=\"kc\">False</span>\n    query_string <span class=\"o\">=</span> <span class=\"kc\">True</span>\n    pattern_name <span class=\"o\">=</span> <span class=\"s2\">&quot;article-detail&quot;</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">get_redirect_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">):</span>\n        article <span class=\"o\">=</span> get_object_or_404<span class=\"p\">(</span>Article<span class=\"p\">,</span> pk<span class=\"o\">=</span>kwargs<span class=\"p\">[</span><span class=\"s2\">&quot;pk&quot;</span><span class=\"p\">])</span>\n        article<span class=\"o\">.</span>update_counter<span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span>get_redirect_url<span class=\"p\">(</span><span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n</code></pre></div>\n<p><strong>Exempel urls.py</strong>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n<span class=\"kn\">from</span> <span class=\"nn\">django.views.generic.base</span> <span class=\"kn\">import</span> RedirectView\n\n<span class=\"kn\">from</span> <span class=\"nn\">article.views</span> <span class=\"kn\">import</span> ArticleCounterRedirectView<span class=\"p\">,</span> ArticleDetailView\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;counter/&lt;int:pk&gt;/&quot;</span><span class=\"p\">,</span>\n        ArticleCounterRedirectView<span class=\"o\">.</span>as_view<span class=\"p\">(),</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;article-counter&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;details/&lt;int:pk&gt;/&quot;</span><span class=\"p\">,</span> ArticleDetailView<span class=\"o\">.</span>as_view<span class=\"p\">(),</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;article-detail&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;go-to-django/&quot;</span><span class=\"p\">,</span>\n        RedirectView<span class=\"o\">.</span>as_view<span class=\"p\">(</span>url<span class=\"o\">=</span><span class=\"s2\">&quot;https://www.djangoproject.com/&quot;</span><span class=\"p\">),</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;go-to-django&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>Attribut</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.url\">\n<span class=\"sig-name descname\">url</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL:en som ska omdirigeras till, som en sträng. Eller <code class=\"docutils literal notranslate\">None</code> för att skapa ett 410 (Gone) HTTP-fel.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.pattern_name\">\n<span class=\"sig-name descname\">pattern_name</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.pattern_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på det URL-mönster som ska omdirigeras till. Omdirigeringen görs med samma args och kwargs som skickas in för den här vyn.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.permanent\">\n<span class=\"sig-name descname\">permanent</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.permanent\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Om omdirigeringen ska vara permanent. Den enda skillnaden här är den HTTP-statuskod som returneras. Om <code class=\"docutils literal notranslate\">True</code> används statuskod 301 för omdirigeringen. Om <code class=\"docutils literal notranslate\">False</code> används statuskod 302 för omdirigeringen. Som standard är <code class=\"docutils literal notranslate\">permanent</code> <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.query_string\">\n<span class=\"sig-name descname\">query_string</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.query_string\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Om GET-frågesträngen ska skickas vidare till den nya platsen. Om <code class=\"docutils literal notranslate\">True</code>, läggs frågesträngen till i URL:en. Om <code class=\"docutils literal notranslate\">False</code>, kasseras frågesträngen. Som standard är <code class=\"docutils literal notranslate\">query_string</code> <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.preserve_request\">\n<span class=\"sig-name descname\">preserve_request</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.preserve_request\"><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=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Om HTTP-metoden och texten ska bevaras vid omdirigeringen. Om värdet är <code class=\"docutils literal notranslate\">True</code> använder omdirigeringen statuskod 307 i stället för 302, eller 308 i stället för 301 när <a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.permanent\" title=\"django.views.generic.base.RedirectView.permanent\"><code class=\"xref py py-attr docutils literal notranslate\">permanent</code></a> är <code class=\"docutils literal notranslate\">True</code>. Som standard är <code class=\"docutils literal notranslate\">preserve_request</code> <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<p><strong>Metoder</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.RedirectView.get_redirect_url\">\n<span class=\"sig-name descname\">get_redirect_url</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.RedirectView.get_redirect_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skapar mål-URL:en för omdirigering.</p>\n<p>Argumenten <code class=\"docutils literal notranslate\">args</code> och <code class=\"docutils literal notranslate\">kwargs</code> är positions- respektive nyckelordsargument :ref:` som hämtats från URL-mönstret &lt;how-django-processes-a-request&gt;`.</p>\n<p>Standardimplementeringen använder <a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.url\" title=\"django.views.generic.base.RedirectView.url\"><code class=\"xref py py-attr docutils literal notranslate\">url</code></a> som en startsträng och expanderar <code class=\"docutils literal notranslate\">%</code> namngivna parametrar i den strängen med hjälp av de namngivna grupper som fångas upp i URL:en.</p>\n<p>Om <a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.url\" title=\"django.views.generic.base.RedirectView.url\"><code class=\"xref py py-attr docutils literal notranslate\">url</code></a> inte anges försöker <code class=\"docutils literal notranslate\">get_redirect_url()</code> att vända <a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.pattern_name\" title=\"django.views.generic.base.RedirectView.pattern_name\"><code class=\"xref py py-attr docutils literal notranslate\">pattern_name</code></a> med hjälp av det som fångades upp i URL:en (både namngivna och icke namngivna grupper används).</p>\n<p>Om det begärs av <a class=\"reference internal\" href=\"#django.views.generic.base.RedirectView.query_string\" title=\"django.views.generic.base.RedirectView.query_string\"><code class=\"xref py py-attr docutils literal notranslate\">query_string</code></a>, kommer den också att lägga till frågesträngen till den genererade URL:en. Underklasser kan implementera vilket beteende de vill, så länge som metoden returnerar en URL-sträng som är redo för omdirigering.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"base-views","toc":[{"title":"View","anchor":"view","children":[]},{"title":"TemplateView","anchor":"templateview","children":[]},{"title":"RedirectView","anchor":"redirectview","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.1/ref/"},{"docname":"ref/class-based-views/index","title":"Inbyggt API för klassbaserade vyer","url":"/sv/6.1/ref/class-based-views/"}],"prev":{"docname":"ref/class-based-views/index","title":"Inbyggt API för klassbaserade vyer","url":"/sv/6.1/ref/class-based-views/"},"next":{"docname":"ref/class-based-views/generic-display","title":"Generiska displayvyer","url":"/sv/6.1/ref/class-based-views/generic-display/"},"formats":{"html":"/sv/6.1/ref/class-based-views/base/","markdown":"/sv/6.1/ref/class-based-views/base.md","json":"/sv/6.1/ref/class-based-views/base.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/class-based-views/base.txt","official":"https://docs.djangoproject.com/sv/6.1/ref/class-based-views/base/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}