{"title":"Visa dekoratörer","version":"5.2","locale":"sv","docname":"topics/http/decorators","url":"/sv/5.2/topics/http/decorators/","canonical":"https://djangodocs.dev/sv/5.2/topics/http/decorators/","summary":"Django tillhandahåller flera dekoratorer som kan tillämpas på vyer för att stödja olika HTTP-funktioner.","html":"<span id=\"view-decorators\"></span><h1>Visa dekoratörer<a class=\"heading-anchor\" href=\"#module-django.views.decorators.http\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django tillhandahåller flera dekoratorer som kan tillämpas på vyer för att stödja olika HTTP-funktioner.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/5.2/topics/class-based-views/intro/#id1\"><span class=\"std std-ref\">Inredning av klassen</span></a> för hur man använder dessa dekoratorer med klassbaserade vyer.</p>\n<section id=\"allowed-http-methods\">\n<h2>Tillåtna HTTP-metoder<a class=\"heading-anchor\" href=\"#allowed-http-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dekoratörerna i <a class=\"reference internal\" href=\"#module-django.views.decorators.http\" title=\"django.views.decorators.http\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.http</code></a> kan användas för att begränsa åtkomsten till vyer baserat på förfrågningsmetoden. Dessa dekoratorer kommer att returnera en <a class=\"reference internal\" href=\"/sv/5.2/ref/request-response/#django.http.HttpResponseNotAllowed\" title=\"django.http.HttpResponseNotAllowed\"><code class=\"xref py py-class docutils literal notranslate\">django.http.HttpResponseNotAllowed</code></a> om villkoren inte uppfylls.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.require_http_methods\">\n<span class=\"sig-name descname\">require_http_methods</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request_method_list</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.require_http_methods\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Dekorator för att kräva att en vy endast accepterar vissa förfrågningsmetoder. Användning:</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.decorators.http</span> <span class=\"kn\">import</span> require_http_methods\n\n\n<span class=\"nd\">@require_http_methods</span><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>\n<span class=\"k\">def</span> <span class=\"nf\">my_view</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"c1\"># I can assume now that only GET or POST requests make it this far</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Observera att metoder för begäran ska skrivas med versaler.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.require_GET\">\n<span class=\"sig-name descname\">require_GET</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.require_GET\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Decorator för att kräva att en vy endast accepterar GET-metoden.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.require_POST\">\n<span class=\"sig-name descname\">require_POST</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.require_POST\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Decorator för att kräva att en vy endast accepterar POST-metoden.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.require_safe\">\n<span class=\"sig-name descname\">require_safe</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.require_safe\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Decorator för att kräva att en vy endast accepterar GET- och HEAD-metoderna. Dessa metoder anses vanligen vara ”säkra” eftersom de inte bör ha någon annan betydelse än att de hämtar den begärda resursen.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Webbservrar bör automatiskt ta bort innehållet i svar på HEAD-begäranden medan rubrikerna lämnas oförändrade, så du kan hantera HEAD-begäranden precis som GET-begäranden i dina vyer. Eftersom vissa program, t.ex. länkgranskare, förlitar sig på HEAD-begäranden, kanske du föredrar att använda <code class=\"docutils literal notranslate\">require_safe</code> i stället för <code class=\"docutils literal notranslate\">require_GET</code>.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"conditional-view-processing\">\n<h2>Behandling av villkorlig vy<a class=\"heading-anchor\" href=\"#conditional-view-processing\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Följande dekoratorer i <a class=\"reference internal\" href=\"#module-django.views.decorators.http\" title=\"django.views.decorators.http\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.http</code></a> kan användas för att styra cachelagringsbeteendet för vissa vyer.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.condition\">\n<span class=\"sig-name descname\">condition</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">etag_func<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">last_modified_func<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.condition\"><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 function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.conditional_page\">\n<span class=\"sig-name descname\">conditional_page</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.conditional_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekorator tillhandahåller den villkorliga GET-operationshanteringen av <a class=\"reference internal\" href=\"/sv/5.2/ref/middleware/#django.middleware.http.ConditionalGetMiddleware\" title=\"django.middleware.http.ConditionalGetMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">ConditionalGetMiddleware</code></a> till en vy.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.etag\">\n<span class=\"sig-name descname\">etag</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">etag_func</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.etag\"><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 function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.http.last_modified\">\n<span class=\"sig-name descname\">last_modified</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">last_modified_func</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.http.last_modified\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Dessa dekoratorer kan användas för att generera rubrikerna <code class=\"docutils literal notranslate\">ETag</code> och <code class=\"docutils literal notranslate\">Last-Modified</code>; se <a class=\"reference internal\" href=\"/sv/5.2/topics/conditional-view-processing/\"><span class=\"doc\">betingad vybehandling</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"gzip-compression\">\n<span id=\"module-django.views.decorators.gzip\"></span><h2>GZip-komprimering<a class=\"heading-anchor\" href=\"#gzip-compression\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dekoratörerna i <a class=\"reference internal\" href=\"#module-django.views.decorators.gzip\" title=\"django.views.decorators.gzip\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.gzip</code></a> styr innehållskomprimering per vy.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.gzip.gzip_page\">\n<span class=\"sig-name descname\">gzip_page</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.gzip.gzip_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekorator komprimerar innehåll om webbläsaren tillåter gzip-komprimering. Den ställer in rubriken <code class=\"docutils literal notranslate\">Vary</code> i enlighet med detta, så att cacheminnet baserar sin lagring på rubriken <code class=\"docutils literal notranslate\">Accept-Encoding</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"vary-headers\">\n<span id=\"module-django.views.decorators.vary\"></span><h2>Variera rubriker<a class=\"heading-anchor\" href=\"#vary-headers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dekoratörerna i <a class=\"reference internal\" href=\"#module-django.views.decorators.vary\" title=\"django.views.decorators.vary\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.vary</code></a> kan användas för att styra cachelagring baserat på specifika förfrågningsrubriker.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.vary.vary_on_cookie\">\n<span class=\"sig-name descname\">vary_on_cookie</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">func</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.vary.vary_on_cookie\"><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 function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.vary.vary_on_headers\">\n<span class=\"sig-name descname\">vary_on_headers</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>headers</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.vary.vary_on_headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Rubriken <code class=\"docutils literal notranslate\">Vary</code> definierar vilka request-rubriker som en cachemekanism ska ta hänsyn till när den bygger upp sin cache-nyckel.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/5.2/topics/cache/#using-vary-headers\"><span class=\"std std-ref\">använda varierande rubriker</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"caching\">\n<span id=\"module-django.views.decorators.cache\"></span><h2>Cachning<a class=\"heading-anchor\" href=\"#caching\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dekoratorerna i <a class=\"reference internal\" href=\"#module-django.views.decorators.cache\" title=\"django.views.decorators.cache\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.cache</code></a> styr cachelagring på server- och klientsidan.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.cache.cache_control\">\n<span class=\"sig-name descname\">cache_control</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.cache.cache_control\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekorator patchar svarets <code class=\"docutils literal notranslate\">Cache-Control</code>-rubrik genom att lägga till alla nyckelordsargument till den. Se <a class=\"reference internal\" href=\"/sv/5.2/ref/utils/#django.utils.cache.patch_cache_control\" title=\"django.utils.cache.patch_cache_control\"><code class=\"xref py py-func docutils literal notranslate\">patch_cache_control()</code></a> för detaljer om omvandlingen.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.cache.never_cache\">\n<span class=\"sig-name descname\">never_cache</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">view_func</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.cache.never_cache\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekoratör lägger till en <code class=\"docutils literal notranslate\">Expires</code> rubrik till aktuellt datum/tid.</p>\n<p>Denna dekoratör lägger till en <code class=\"docutils literal notranslate\">Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private</code> rubrik till ett svar för att ange att en sida aldrig ska cachas.</p>\n<p>Varje rubrik läggs bara till om den inte redan är inställd.</p>\n</dd></dl>\n\n</section>\n<section id=\"common\">\n<span id=\"module-django.views.decorators.common\"></span><h2>Standard<a class=\"heading-anchor\" href=\"#common\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dekoratorerna i <a class=\"reference internal\" href=\"#module-django.views.decorators.common\" title=\"django.views.decorators.common\"><code class=\"xref py py-mod docutils literal notranslate\">django.views.decorators.common</code></a> tillåter anpassning per vy av <a class=\"reference internal\" href=\"/sv/5.2/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">CommonMiddleware</code></a> beteende.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.views.decorators.common.no_append_slash\">\n<span class=\"sig-name descname\">no_append_slash</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.decorators.common.no_append_slash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Med denna dekorator kan enskilda vyer uteslutas från <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\">APPEND_SLASH</code></a> URL-normalisering.</p>\n</dd></dl>\n\n</section>","rootId":"module-django.views.decorators.http","toc":[{"title":"Tillåtna HTTP-metoder","anchor":"allowed-http-methods","children":[]},{"title":"Behandling av villkorlig vy","anchor":"conditional-view-processing","children":[]},{"title":"GZip-komprimering","anchor":"gzip-compression","children":[]},{"title":"Variera rubriker","anchor":"vary-headers","children":[]},{"title":"Cachning","anchor":"caching","children":[]},{"title":"Standard","anchor":"common","children":[]}],"breadcrumbs":[{"docname":"topics/index","title":"Använda Django","url":"/sv/5.2/topics/"},{"docname":"topics/http/index","title":"Hantering av HTTP-förfrågningar","url":"/sv/5.2/topics/http/"}],"prev":{"docname":"topics/http/views","title":"Skriva synpunkter","url":"/sv/5.2/topics/http/views/"},"next":{"docname":"topics/http/file-uploads","title":"Filuppladdning","url":"/sv/5.2/topics/http/file-uploads/"},"formats":{"html":"/sv/5.2/topics/http/decorators/","markdown":"/sv/5.2/topics/http/decorators.md","json":"/sv/5.2/topics/http/decorators.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/topics/http/decorators.txt","official":"https://docs.djangoproject.com/sv/5.2/topics/http/decorators/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}