:しかし、何とかbase.pyからmyprojectにデータベースをロードしようとしているのではなく
# base.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'admin',
'PASSWORD': '*****',
'ATOMIC_REQUESTS': True,
},
}
# prod.py
from .base import *
DEBUG = False
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'prod_myproject',
'USER': 'admin',
'PASSWORD': '',
},
}
try:
from .local import *
except ImportError:
pass
# local.py is empty file
prod.pyからロードされたDjangoの私のプロジェクトには、アプリケーション/プロジェクト/ PRODフォルダ内にあります2 settings.py、どのsettings.pyを使用するか宣言する必要があります!
あなたは、以下の(mod_wsgiの)でこれを行うことができます。
は
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'your_proj/settings_location/prod'
これは、特定の設定ファイルを使用するには、ジャンゴを設定します。
か、シェルでこれを行うことができます。
python manage.py collectstatic --settings=your_proj/settings_location/prod
これは設定が必要なファイルを指定します。
参考:私はgitのプルをしたときhttps://docs.djangoproject.com/en/1.10/topics/settings/#on-the-server-mod-wsgi
manage.pyを開いて内部のコードを見ると、どの設定を使用するかを知ることができます。環境ごとに正しいファイルを使用するように操作できます。 – Neelik
Thxの返信です。 manage.pyでは、__name__ == "__main__"のように書かれています: os.environ.setdefault( "DJANGO_SETTINGS_MODULE"、 "myproject.settings") –