{"title":"Django-inställningar","version":"6.0","locale":"sv","docname":"topics/settings","url":"/sv/6.0/topics/settings/","canonical":"https://djangodocs.dev/sv/6.0/topics/settings/","summary":"En Django-inställningsfil innehåller all konfiguration av din Django-installation. I detta dokument förklaras hur inställningar fungerar och vilka inställningar som…","html":"<h1>Django-inställningar<a class=\"heading-anchor\" href=\"#django-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>En Django-inställningsfil innehåller all konfiguration av din Django-installation. I detta dokument förklaras hur inställningar fungerar och vilka inställningar som finns tillgängliga.</p>\n<section id=\"the-basics\">\n<h2>Grunderna<a class=\"heading-anchor\" href=\"#the-basics\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>En inställningsfil är bara en Python-modul med variabler på modulnivå.</p>\n<p>Här är några exempel på inställningar:</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\">ALLOWED_HOSTS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;www.example.com&quot;</span><span class=\"p\">]</span>\n<span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n<span class=\"n\">DEFAULT_FROM_EMAIL</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;webmaster@example.com&quot;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Om du ställer in <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> måste du också ställa in <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a> på rätt sätt.</p>\n</aside>\n<p>Eftersom en inställningsfil är en Python-modul gäller följande:</p>\n<ul>\n<li><p>Det tillåter inte syntaxfel i Python.</p></li>\n<li><p>Den kan tilldela inställningar dynamiskt med hjälp av normal Python-syntax. 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=\"n\">MY_SETTING</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">30</span><span class=\"p\">)]</span>\n</code></pre></div>\n</li>\n<li><p>Den kan importera värden från andra inställningsfiler.</p></li>\n</ul>\n</section>\n<section id=\"designating-the-settings\">\n<span id=\"django-settings-module\"></span><h2>Beteckna inställningarna<a class=\"heading-anchor\" href=\"#designating-the-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"std envvar\">\n<dt class=\"sig sig-object std\" id=\"envvar-DJANGO_SETTINGS_MODULE\">\n<span class=\"sig-name descname\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></span><a class=\"heading-anchor\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><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 du använder Django måste du tala om vilka inställningar du använder. Detta gör du genom att använda miljövariabeln <span class=\"target\" id=\"index-18\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a>.</p>\n<p>The value of <span class=\"target\" id=\"index-1\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a> should be in Python path syntax,\ne.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.settings</span></code>. Note that the settings module should be on the\nPython <a class=\"reference external\" href=\"https://docs.python.org/3/library/sys.html#sys.path\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">sys.path</span></code></a>.</p>\n<section id=\"the-django-admin-utility\">\n<h3>Verktyget <code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code><a class=\"heading-anchor\" href=\"#the-django-admin-utility\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>När du använder <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/\"><span class=\"doc\">django-admin</span></a> kan du antingen ställa in miljövariabeln en gång, eller uttryckligen skicka in inställningsmodulen varje gång du kör verktyget.</p>\n<p>Exempel (Unix Bash-skal):</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"nb\">export</span><span class=\"w\"> </span><span class=\"nv\">DJANGO_SETTINGS_MODULE</span><span class=\"o\">=</span>mysite.settings\ndjango-admin<span class=\"w\"> </span>runserver\n</code></pre></div>\n<p>Exempel (Windows-skal):</p>\n<div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows code\"><code><span class=\"go\">set DJANGO_SETTINGS_MODULE=mysite.settings</span>\n<span class=\"go\">django-admin runserver</span>\n</code></pre></div>\n<p>Använd kommandoradsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">--settings</span></code> för att ange inställningarna manuellt:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code>django-admin<span class=\"w\"> </span>runserver<span class=\"w\"> </span>--settings<span class=\"o\">=</span>mysite.settings\n</code></pre></div>\n</section>\n<section id=\"on-the-server-mod-wsgi\">\n<h3>På servern (<code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code>)<a class=\"heading-anchor\" href=\"#on-the-server-mod-wsgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>I din live-servermiljö måste du tala om för din WSGI-applikation vilken inställningsfil som ska användas. Gör det med <code class=\"docutils literal notranslate\"><span class=\"pre\">os.environ</span></code>:</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\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;DJANGO_SETTINGS_MODULE&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;mysite.settings&quot;</span>\n</code></pre></div>\n<p>Läs <a class=\"reference internal\" href=\"/sv/6.0/howto/deployment/wsgi/modwsgi/\"><span class=\"doc\">Django mod_wsgi documentation</span></a> för mer information och andra vanliga element i en Django WSGI-applikation.</p>\n</section>\n</section>\n<section id=\"default-settings\">\n<h2>Standardinställningar<a class=\"heading-anchor\" href=\"#default-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>En Django-inställningsfil behöver inte definiera några inställningar om den inte behöver det. Varje inställning har ett förnuftigt standardvärde. Dessa standardvärden finns i modulen <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/django/conf/global_settings.py\">django/conf/global_settings.py</a>.</p>\n<p>Här är den algoritm som Django använder för att sammanställa inställningar:</p>\n<ul class=\"simple\">\n<li><p>Ladda inställningar från <code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings.py</span></code>.</p></li>\n<li><p>Ladda inställningar från den angivna inställningsfilen och åsidosätt de globala inställningarna vid behov.</p></li>\n</ul>\n<p>Observera att en inställningsfil <em>inte</em> bör importera från <code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings</span></code>, eftersom det är överflödigt.</p>\n<section id=\"seeing-which-settings-you-ve-changed\">\n<h3>Se vilka inställningar du har ändrat<a class=\"heading-anchor\" href=\"#seeing-which-settings-you-ve-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Kommandot <code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">manage.py</span> <span class=\"pre\">diffsettings</span></code> visar skillnader mellan den aktuella inställningsfilen och Djangos standardinställningar.</p>\n<p>Mer information finns i <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/#django-admin-diffsettings\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">diffsettings</span></code></a>-dokumentationen.</p>\n</section>\n</section>\n<section id=\"using-settings-in-python-code\">\n<h2>Använda inställningar i Python-kod<a class=\"heading-anchor\" href=\"#using-settings-in-python-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>I dina Django-appar kan du använda inställningar genom att importera objektet <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code>. 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.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n\n<span class=\"k\">if</span> <span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">DEBUG</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Observera att <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code> inte är en modul - det är ett objekt. Så det är inte möjligt att importera enskilda inställningar:</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.conf.settings</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DEBUG</span>  <span class=\"c1\"># This won&#39;t work.</span>\n</code></pre></div>\n<p>Observera också att din kod <em>inte</em> ska importera från varken <code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings</span></code> eller din egen inställningsfil. <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code> abstraherar begreppen standardinställningar och platsspecifika inställningar; det presenterar ett enda gränssnitt. Det frikopplar också koden som använder inställningar från platsen för dina inställningar.</p>\n</section>\n<section id=\"altering-settings-at-runtime\">\n<h2>Ändra inställningar under körning<a class=\"heading-anchor\" href=\"#altering-settings-at-runtime\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Du bör inte ändra inställningarna i dina program under körning. Gör till exempel inte så här i en vy:</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.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n\n<span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>  <span class=\"c1\"># Don&#39;t do this!</span>\n</code></pre></div>\n<p>Den enda plats där du bör tilldela inställningar är i en inställningsfil.</p>\n</section>\n<section id=\"security\">\n<h2>Säkerhet<a class=\"heading-anchor\" href=\"#security\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Eftersom en inställningsfil innehåller känslig information, t.ex. databasens lösenord, bör du göra allt du kan för att begränsa åtkomsten till den. Ändra t.ex. filbehörigheterna så att endast du och webbserverns användare kan läsa den. Detta är särskilt viktigt i en miljö med delat värdskap.</p>\n</section>\n<section id=\"available-settings\">\n<h2>Tillgängliga inställningar<a class=\"heading-anchor\" href=\"#available-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>För en fullständig lista över tillgängliga inställningar, se <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/\"><span class=\"doc\">inställningsreferens</span></a>.</p>\n</section>\n<section id=\"creating-your-own-settings\">\n<h2>Skapa dina egna inställningar<a class=\"heading-anchor\" href=\"#creating-your-own-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Det finns inget som hindrar dig från att skapa dina egna inställningar för dina egna Django-appar, men följ dessa riktlinjer:</p>\n<ul class=\"simple\">\n<li><p>Alla namn på inställningarna måste vara versaler.</p></li>\n<li><p>Uppfinn inte en redan existerande miljö på nytt.</p></li>\n</ul>\n<p>För inställningar som är sekvenser använder Django själv listor, men detta är bara en konvention.</p>\n</section>\n<section id=\"using-settings-without-setting-django-settings-module\">\n<span id=\"settings-without-django-settings-module\"></span><h2>Använda inställningar utan att ställa in <span class=\"target\" id=\"index-11\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a><a class=\"heading-anchor\" href=\"#using-settings-without-setting-django-settings-module\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>I vissa fall kanske du vill kringgå miljövariabeln <span class=\"target\" id=\"index-19\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a>. Om du till exempel använder mallsystemet i sig självt, vill du förmodligen inte behöva ställa in en miljövariabel som pekar på en inställningsmodul.</p>\n<p>I dessa fall kan du konfigurera Djangos inställningar manuellt. Detta gör du genom att anropa:</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.conf.settings.configure\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.conf.settings.</span></span><span class=\"sig-name descname\"><span class=\"pre\">configure</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default_settings</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">settings</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.conf.settings.configure\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>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.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n\n<span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">configure</span><span class=\"p\">(</span><span class=\"n\">DEBUG</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Skicka <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> så många nyckelordsargument som du vill, där varje nyckelordsargument representerar en inställning och dess värde. Varje argumentnamn ska vara versalt och ha samma namn som de inställningar som beskrivs ovan. Om en viss inställning inte skickas till <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> och behövs vid ett senare tillfälle, kommer Django att använda standardinställningsvärdet.</p>\n<p>Att konfigurera Django på det här sättet är oftast nödvändigt - och rekommenderas faktiskt - när du använder en del av ramverket i en större applikation.</p>\n<p>Följaktligen kommer Django inte att göra några ändringar i processmiljövariablerna när de konfigureras via <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.configure()</span></code> (se dokumentationen av <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> för varför detta normalt skulle inträffa). Det förutsätts att du redan har full kontroll över din miljö i dessa fall.</p>\n<section id=\"custom-default-settings\">\n<h3>Anpassade standardinställningar<a class=\"heading-anchor\" href=\"#custom-default-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du vill att standardvärdena ska komma från någon annanstans än <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.global_settings</span></code>, kan du skicka in en modul eller klass som tillhandahåller standardinställningarna som <code class=\"docutils literal notranslate\"><span class=\"pre\">default_settings</span></code>-argument (eller som det första positionsargumentet) i anropet till <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code>.</p>\n<p>I det här exemplet hämtas standardinställningarna från <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp_defaults</span></code>, och inställningen <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG`</span></code> sätts till <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, oavsett dess värde i <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp_defaults</span></code>:</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.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">myapp_defaults</span>\n\n<span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">configure</span><span class=\"p\">(</span><span class=\"n\">default_settings</span><span class=\"o\">=</span><span class=\"n\">myapp_defaults</span><span class=\"p\">,</span> <span class=\"n\">DEBUG</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Följande exempel, som använder <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp_defaults</span></code> som ett positionellt argument, är likvärdigt:</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\">settings</span><span class=\"o\">.</span><span class=\"n\">configure</span><span class=\"p\">(</span><span class=\"n\">myapp_defaults</span><span class=\"p\">,</span> <span class=\"n\">DEBUG</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Normalt sett behöver du inte åsidosätta standardinställningarna på detta sätt. Djangos standardvärden är tillräckligt tama för att du säkert kan använda dem. Tänk på att om du skickar in en ny standardmodul, ersätter den helt och hållet Djangos standardinställningar, så du måste ange ett värde för varje möjlig inställning som kan användas i den kod du importerar. Kolla in <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings.global_settings</span></code> för den fullständiga listan.</p>\n</section>\n<section id=\"either-configure-or-django-settings-module-is-required\">\n<h3>Antingen krävs <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> eller <span class=\"target\" id=\"index-13\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a><a class=\"heading-anchor\" href=\"#either-configure-or-django-settings-module-is-required\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du inte ställer in miljövariabeln <span class=\"target\" id=\"index-20\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a> måste du <em>anropa</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> någon gång innan du använder någon kod som läser inställningar.</p>\n<p>Om du inte ställer in <span class=\"target\" id=\"index-21\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a> och inte anropar <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code>, kommer Django att göra ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ImportError</span></code> undantag första gången en inställning nås.</p>\n<p>Om du ställer in <span class=\"target\" id=\"index-22\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a>, kommer åt inställningsvärden på något sätt, <em>därefter</em> anropar <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code>, kommer Django att ge ett <code class=\"docutils literal notranslate\"><span class=\"pre\">RuntimeError</span></code> som indikerar att inställningarna redan har konfigurerats. Det finns en egenskap för detta ändamål:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.conf.settings.configured\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.conf.settings.</span></span><span class=\"sig-name descname\"><span class=\"pre\">configured</span></span><a class=\"heading-anchor\" href=\"#django.conf.settings.configured\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>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.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n\n<span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">configured</span><span class=\"p\">:</span>\n    <span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">configure</span><span class=\"p\">(</span><span class=\"n\">myapp_defaults</span><span class=\"p\">,</span> <span class=\"n\">DEBUG</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Det är också ett fel att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> mer än en gång, eller att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> efter att någon inställning har använts.</p>\n<p>Det kokar ner till detta: Använd exakt en av antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> eller <span class=\"target\" id=\"index-23\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a>. Inte både och, och inte varken eller.</p>\n</section>\n<section id=\"calling-django-setup-is-required-for-standalone-django-usage\">\n<h3>Anrop av <code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> krävs för ”fristående” Django-användning<a class=\"heading-anchor\" href=\"#calling-django-setup-is-required-for-standalone-django-usage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du använder komponenter i Django ”fristående” - till exempel skriver ett Python-skript som laddar några Django-mallar och renderar dem, eller använder ORM för att hämta data - finns det ytterligare ett steg du behöver utöver att konfigurera inställningar.</p>\n<p>After you’ve either set <span class=\"target\" id=\"index-9\"></span><a class=\"reference internal\" href=\"#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a> or called\n<code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code>, you’ll need to call <a class=\"reference internal\" href=\"/sv/6.0/ref/applications/#django.setup\" title=\"django.setup\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code></a> to load your\nsettings and populate Django’s application registry. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">django</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">myapp_defaults</span>\n\n<span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">configure</span><span class=\"p\">(</span><span class=\"n\">default_settings</span><span class=\"o\">=</span><span class=\"n\">myapp_defaults</span><span class=\"p\">,</span> <span class=\"n\">DEBUG</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"n\">django</span><span class=\"o\">.</span><span class=\"n\">setup</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># Now this script or any imported module can use any part of Django it needs.</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n</code></pre></div>\n<p>Observera att anrop av <code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> endast är nödvändigt om din kod verkligen är fristående. När den anropas av din webbserver, eller genom <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/\"><span class=\"doc\">django-admin</span></a>, kommer Django att hantera detta åt dig.</p>\n<aside class=\"admonition-django-setup-may-only-be-called-once admonition\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> får bara anropas en gång.</p>\n<p>Undvik därför att lägga återanvändbar applikationslogik i fristående skript så att du måste importera från skriptet någon annanstans i din applikation. Om du inte kan undvika det, lägg anropet till <code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> inuti ett <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span></code>-block:</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\">if</span> <span class=\"vm\">__name__</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;__main__&quot;</span><span class=\"p\">:</span>\n    <span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">django</span>\n\n    <span class=\"n\">django</span><span class=\"o\">.</span><span class=\"n\">setup</span><span class=\"p\">()</span>\n</code></pre></div>\n</aside>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Se även</p>\n<dl class=\"simple\">\n<dt><a class=\"reference internal\" href=\"/sv/6.0/ref/settings/\"><span class=\"doc\">Inställningsreferensen</span></a></dt><dd><p>Innehåller den fullständiga listan över inställningar för core- och contrib-appar.</p>\n</dd>\n</dl>\n</aside>\n</section>\n</section>","rootId":"django-settings","toc":[{"title":"Grunderna","anchor":"the-basics","children":[]},{"title":"Beteckna inställningarna","anchor":"designating-the-settings","children":[{"title":"Verktyget django-admin","anchor":"the-django-admin-utility","children":[]},{"title":"På servern (mod_wsgi)","anchor":"on-the-server-mod-wsgi","children":[]}]},{"title":"Standardinställningar","anchor":"default-settings","children":[{"title":"Se vilka inställningar du har ändrat","anchor":"seeing-which-settings-you-ve-changed","children":[]}]},{"title":"Använda inställningar i Python-kod","anchor":"using-settings-in-python-code","children":[]},{"title":"Ändra inställningar under körning","anchor":"altering-settings-at-runtime","children":[]},{"title":"Säkerhet","anchor":"security","children":[]},{"title":"Tillgängliga inställningar","anchor":"available-settings","children":[]},{"title":"Skapa dina egna inställningar","anchor":"creating-your-own-settings","children":[]},{"title":"Använda inställningar utan att ställa in DJANGO_SETTINGS_MODULE","anchor":"using-settings-without-setting-django-settings-module","children":[{"title":"Anpassade standardinställningar","anchor":"custom-default-settings","children":[]},{"title":"Antingen krävs configure() eller DJANGO_SETTINGS_MODULE","anchor":"either-configure-or-django-settings-module-is-required","children":[]},{"title":"Anrop av django.setup() krävs för ”fristående” Django-användning","anchor":"calling-django-setup-is-required-for-standalone-django-usage","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Använda Django","url":"/sv/6.0/topics/"}],"prev":{"docname":"topics/serialization","title":"Serialisering av Django-objekt","url":"/sv/6.0/topics/serialization/"},"next":{"docname":"topics/signals","title":"Signaler","url":"/sv/6.0/topics/signals/"},"formats":{"html":"/sv/6.0/topics/settings/","markdown":"/sv/6.0/topics/settings.md","json":"/sv/6.0/topics/settings.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/topics/settings.txt","official":"https://docs.djangoproject.com/sv/6.0/topics/settings/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}