{"title":"Djangoの設定","version":"6.1","locale":"ja","docname":"topics/settings","url":"/ja/6.1/topics/settings/","canonical":"https://djangodocs.dev/ja/6.1/topics/settings/","summary":"Djangoの設定ファイルには、インストールしたDjangoの全ての設定が含まれています。このドキュメントでは、各設定の役割と、どのような設定を利用できるか説明していきます。 基礎 Link to this heading # 設定ファイルはモジュールレベルの変数が記述された、ただのPythonモジュールです。…","html":"<h1>Djangoの設定<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>Djangoの設定ファイルには、インストールしたDjangoの全ての設定が含まれています。このドキュメントでは、各設定の役割と、どのような設定を利用できるか説明していきます。</p>\n<section id=\"the-basics\">\n<h2>基礎<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>設定ファイルはモジュールレベルの変数が記述された、ただのPythonモジュールです。</p>\n<p>設定例を幾つか示します:</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\">注釈</p>\n<p>もし <a class=\"reference internal\" href=\"/ja/6.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> を <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> にした場合、 <a class=\"reference internal\" href=\"/ja/6.1/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a> も設定する必要があります。</p>\n</aside>\n<p>設定ファイルはPythonのモジュールなので、以下のような性質を備えています。</p>\n<ul>\n<li><p>Pythonの構文エラーになってはいけません。</p></li>\n<li><p>通常の Pythonの構文を使って、動的に値を設定する事ができます。例えば:</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>他の設定ファイルから値を import できます。</p></li>\n</ul>\n</section>\n<section id=\"designating-the-settings\">\n<span id=\"django-settings-module\"></span><h2>設定ファイルの指定<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>Django を使うとき、どの設定を使うかを Django に伝える必要があります。そのためには環境変数 <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><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><a class=\"reference internal\" href=\"/ja/6.1/ref/django-admin/\"><span class=\"doc\">django-admin</span></a> を使う場合、環境変数を予め指定しておくか、ユーティリティを起動する度に設定モジュールを明示的に渡します。</p>\n<p>例 (Unix Bash シェル):</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>例 (Windows シェル):</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>コマンドライン引数で設定モジュールを指定するには、次のように <code class=\"docutils literal notranslate\"><span class=\"pre\">--settings</span></code> を使用します。</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>サーバ (<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>実際のサーバ環境では、 WSGI アプリケーションにどの設定ファイルを使うのか教えてあげる必要があります。これには <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>さらなる情報や他のDjango WSGI アプリケーションでの共通の設定は <a class=\"reference internal\" href=\"/ja/6.1/howto/deployment/wsgi/modwsgi/\"><span class=\"doc\">Django mod_wsgi ドキュメント</span></a> を参照してください。</p>\n</section>\n</section>\n<section id=\"default-settings\">\n<h2>デフォルトの設定<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>Django の設定ファイルでは、特に必要のない限り設定を行う必要はありません。各々の設定には注意深く決められたデフォルト値が入っています。デフォルト値は <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.1.x/django/conf/global_settings.py\">django/conf/global_settings.py</a> に記述されています。</p>\n<p>Django が設定をコンパイルする際には、以下のようなアルゴリズムを使います:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings.py</span></code> から設定を読みだす。</p></li>\n<li><p>指定された設定ファイルから設定を読み込み、グローバルな設定を必要に応じて上書きします。</p></li>\n</ul>\n<p>設定ファイルから <code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings</span></code> を読み込むのは冗長なのでやらないでください。</p>\n<section id=\"seeing-which-settings-you-ve-changed\">\n<h3>設定の変更を確かめる<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><code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">manage.py</span> <span class=\"pre\">diffsettings</span></code> コマンドは、現在の設定と Django のデフォルトの設定との違いを表示します。</p>\n<p>詳しくは <a class=\"reference internal\" href=\"/ja/6.1/ref/django-admin/#django-admin-diffsettings\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">diffsettings</span></code></a> のドキュメントを参照してください。</p>\n</section>\n</section>\n<section id=\"using-settings-in-python-code\">\n<h2>Pythonのコード内で設定を参照する<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>自作のDjangoアプリケーションからは <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code> をimportすることで設定を参照できます。例:</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><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code> はモジュールではなく、ただのオブジェクトです。そのため個々の設定は別々にimportできません。</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>また <code class=\"docutils literal notranslate\"><span class=\"pre\">global_settings</span></code> や自作の設定ファイルをimportしてはいけません。 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings</span></code> はデフォルト設定とサイト固有の設定を抽象化し、単一のインタフェースを提供しています。また設定を使うコードと設定ファイルの場所を分離しています。</p>\n</section>\n<section id=\"altering-settings-at-runtime\">\n<h2>実行時に設定を変更する<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>アプリケーションの実行中に設定を変えてはいけません。例えば、viewの中で以下の実装を行ってはいけません。</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>設定を変えて良いのは、設定ファイルの中だけです。</p>\n</section>\n<section id=\"security\">\n<h2>セキュリティ<a class=\"heading-anchor\" href=\"#security\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>設定ファイルにはデータベースのパスワードのような重要な情報が入っているため、設定ファイルへのアクセスはできるだけ制限してください。たとえば、設定ファイルのパーミッションを、あなたとウェブサーバだけが読み取れるようにしてください。共有ホスティング環境で運用する場合、これは極めて重要な事項です。</p>\n</section>\n<section id=\"available-settings\">\n<h2>利用可能な設定<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>利用可能な設定は <a class=\"reference internal\" href=\"/ja/6.1/ref/settings/\"><span class=\"doc\">settings リファレンス</span></a> を参照してください。</p>\n</section>\n<section id=\"creating-your-own-settings\">\n<h2>設定項目を自作する<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>Django アプリケーションの設定項目は自由に作成できますが、以下のガイドラインに従ってください。</p>\n<ul class=\"simple\">\n<li><p>設定項目の変数名は、全て大文字にしなければなりません。</p></li>\n<li><p>既存の設定の再発明はやめましょう。</p></li>\n</ul>\n<p>設定値をシーケンスにする際は、リストを使ってください。ただしこれはDjangoの慣習です。</p>\n</section>\n<section id=\"using-settings-without-setting-django-settings-module\">\n<span id=\"settings-without-django-settings-module\"></span><h2><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><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> 環境変数をパイパスしたい場合もあるかもしれません。たとえば、テンプレートシステムを単体で使いたい場合、設定モジュールを示すような環境変数は設定したくないでしょう。</p>\n<p>こういったケースのため、Djangoでは以下の関数を呼ぶことで手動で設定できるようになっています。</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>実装例:</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><code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> には、キーワード引数を好きなだけ渡すことができ、各キーワード引数は設定とその値を表します。各引数名はすべて大文字で、上述の設定と同じ名前であるべきです。特定の設定が <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> に渡されず、後で必要になった場合、Djangoはデフォルトの設定値を使用します。</p>\n<p>この方法でDjangoを設定することは、主にフレームワークの一部をより大きなアプリケーション内で使用している場合に必要であり、実際に推奨されています。</p>\n<p>したがって、<code class=\"docutils literal notranslate\"><span class=\"pre\">settings.configure()</span></code> を介して設定された場合、Djangoはプロセス環境変数を変更しません (これが通常発生する理由については、<a class=\"reference internal\" href=\"/ja/6.1/ref/settings/#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> のドキュメントを参照してください)。これらの場合、すでに環境を完全に制御していることが前提となります。</p>\n<section id=\"custom-default-settings\">\n<h3>カスタムのデフォルト設定<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>デフォルト値を <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.global_settings</span></code> 以外の場所から取得したい場合は、デフォルト設定を提供するモジュールやクラスを <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> 呼び出し時の <code class=\"docutils literal notranslate\"><span class=\"pre\">default_settings</span></code> 引数（または最初の位置引数）として渡すことができます。</p>\n<p>この例では、デフォルトの設定は <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp_defaults</span></code> から取得され、 <a class=\"reference internal\" href=\"/ja/6.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> 設定は <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp_defaults</span></code> での値に関係なく <code class=\"docutils literal notranslate\"><span class=\"pre\">True</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>次の例では、 <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=\"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>通常、このような方法でデフォルトを上書きする必要はありません。Django のデフォ ルトは十分に無難なので、安全に使うことができます。新しいデフォルトモジュールを渡す場合、Djangoのデフォルトを完全に <em>置き換える</em> ため、インポートしているコードで使用される可能性のあるすべての設定に対して値を指定する必要があることに注意してください。全リストは <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.settings.global_settings</span></code> を参照してください。</p>\n</section>\n<section id=\"either-configure-or-django-settings-module-is-required\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> と <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>環境変数 <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> を設定していない場合、設定を読み込むコードを使用する前に <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> を呼び出す <em>必要があります</em> 。</p>\n<p><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> を設定せず、 <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> を呼び出さない場合、 Django は設定に初めてアクセスしたときに <code class=\"docutils literal notranslate\"><span class=\"pre\">ImportError</span></code> 例外を発生させます。</p>\n<p><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> を設定し、何らかの方法で設定値にアクセスし、 <em>その後に</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> を呼び出すと、Django は設定が既に設定されていることを示す <code class=\"docutils literal notranslate\"><span class=\"pre\">RuntimeError</span></code> を送出します。このためのプロパティがあります:</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>例:</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>また、 <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> を2回以上呼び出したり、設定にアクセスした後に <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> を呼び出したりするとエラーになります。</p>\n<p>結論はこうです： <code class=\"docutils literal notranslate\"><span class=\"pre\">configure()</span></code> と <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> のどちらか片方だけを使ってください。両方使うのも、両方使わないのもいけません。</p>\n</section>\n<section id=\"calling-django-setup-is-required-for-standalone-django-usage\">\n<h3>スタンドアロンで Django を使うには <code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> を呼び出す必要がある<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>Django のコンポーネントを &quot;スタンドアロン&quot; で使う場合、たとえば、 Django テンプレートを読み込んでレンダリングする Python スクリプトを書いたり、 ORM を使ってデータを取得したりする場合、設定の他にもう一つ必要なステップがあります。</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=\"/ja/6.1/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><code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> を呼び出す必要があるのは、あなたのコードが本当にスタンドアロンである場合だけだということに注意してください。ウェブサーバから起動された場合、あるいは <a class=\"reference internal\" href=\"/ja/6.1/ref/django-admin/\"><span class=\"doc\">django-admin</span></a> から起動された場合は、Django がこの処理を行います。</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> は一度しか呼び出せません。</p>\n<p>そのため、再利用可能なアプリケーションロジックをスタンドアロンスクリプトに置いて、アプリケーションの他の場所でそのスクリプトからインポートしなければならないようにするのは避けてください。それを避けられない場合は、下記のように <code class=\"docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code> の呼び出しを <code class=\"docutils literal notranslate\"><span class=\"pre\">if</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=\"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\">参考</p>\n<dl class=\"simple\">\n<dt><a class=\"reference internal\" href=\"/ja/6.1/ref/settings/\"><span class=\"doc\">設定のリファレンス</span></a></dt><dd><p>コア・アプリと contlib アプリの設定の完全なリストを記載しています。</p>\n</dd>\n</dl>\n</aside>\n</section>\n</section>","rootId":"django-settings","toc":[{"title":"基礎","anchor":"the-basics","children":[]},{"title":"設定ファイルの指定","anchor":"designating-the-settings","children":[{"title":"django-admin ユーティリティ","anchor":"the-django-admin-utility","children":[]},{"title":"サーバ (mod_wsgi) の設定","anchor":"on-the-server-mod-wsgi","children":[]}]},{"title":"デフォルトの設定","anchor":"default-settings","children":[{"title":"設定の変更を確かめる","anchor":"seeing-which-settings-you-ve-changed","children":[]}]},{"title":"Pythonのコード内で設定を参照する","anchor":"using-settings-in-python-code","children":[]},{"title":"実行時に設定を変更する","anchor":"altering-settings-at-runtime","children":[]},{"title":"セキュリティ","anchor":"security","children":[]},{"title":"利用可能な設定","anchor":"available-settings","children":[]},{"title":"設定項目を自作する","anchor":"creating-your-own-settings","children":[]},{"title":"DJANGO_SETTINGS_MODULE 設定を使わない設定方法","anchor":"using-settings-without-setting-django-settings-module","children":[{"title":"カスタムのデフォルト設定","anchor":"custom-default-settings","children":[]},{"title":"configure() と DJANGO_SETTINGS_MODULE は片方だけが必要","anchor":"either-configure-or-django-settings-module-is-required","children":[]},{"title":"スタンドアロンで Django を使うには django.setup() を呼び出す必要がある","anchor":"calling-django-setup-is-required-for-standalone-django-usage","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Django を使う","url":"/ja/6.1/topics/"}],"prev":{"docname":"topics/serialization","title":"Django オブジェクトのシリアライズ","url":"/ja/6.1/topics/serialization/"},"next":{"docname":"topics/signals","title":"シグナル","url":"/ja/6.1/topics/signals/"},"formats":{"html":"/ja/6.1/topics/settings/","markdown":"/ja/6.1/topics/settings.md","json":"/ja/6.1/topics/settings.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/topics/settings.txt","official":"https://docs.djangoproject.com/ja/6.1/topics/settings/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}