У меня есть проект Django, развернутый на Heroku, где я пытаюсь настроить файл настроек для изменения БД между производством и разработкой.
Я действительно не вижу смысла создавать три настройки (включая базовый файл), поскольку единственное, что я изменяю, - это настройки базы данных, но я не хочу использовать
python manage.py runserver --settings=rivendell.settings.local
каждый раз, когда я запускаю manage.py. если я запускаю без флага настроек, сервер запускается Но я получаю сообщение об ошибке:
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Я знаю, почему это происходит, но я могу установить Django, чтобы выбрать правильный файл.
Мое дерево:
|-- rivendell
| |-- __init__.py
| |-- asgi.py
| |-- settings
| | |-- __init__.py
| | |-- consts
| | |-- local.py
| | |-- settings.py
| |-- urls.py
| `-- wsgi.py
мой файл настроек:
import os
import dj_database_url
import dotenv
import environ
from .consts.apps import INSTALLED_APPS, MIDDLEWARE
from .consts.consts import (PASSWORD_VALIDATORS, POSTGRESQL_CONNECTION, STATIC,
TEMPLATES, Config, Language)
from .consts.logging import LOGGING
from .consts.rest_framework import REST_FRAMEWORK
env = environ.Env(DEBUG=(bool, False))
environ.Env.read_env()
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
env_file = os.path.join(BASE_DIR, ".env")
if os.path.isfile(env_file):
file = dotenv.load_dotenv(env_file)
SECRET_KEY = '+@sxt&+q5=9-u&it^5n-n!!a-2*fcbur^-umoxw*#!_ik$@kbc'
DEBUG = env('DEBUG')
ALLOWED_HOSTS = Config.HOSTS
INTERNAL_IPS = ['127.0.0.1', ]
INSTALLED_APPS = INSTALLED_APPS
REST_FRAMEWORK = REST_FRAMEWORK
MIDDLEWARE = MIDDLEWARE
ROOT_URLCONF = Config.URLS_PATH
TEMPLATES = TEMPLATES
WSGI_APPLICATION = Config.WSGI
DATABASES = {'default': dj_database_url.config(conn_max_age=600, ssl_require=True)} # My issue
AUTH_PASSWORD_VALIDATORS = PASSWORD_VALIDATORS
AUTH_USER_MODEL = 'users.CustomUser'
DJOSER = {
'SERIALIZERS': {
'user_create': 'users.serializers.UserRegistrationSerializer',
},
}
# Language and Time Zone
LANGUAGE_CODE = Language.LANGUAGE_CODE
TIME_ZONE = Language.TIME_ZONE
USE_I18N = True
USE_L10N = False
USE_TZ = True
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = STATIC
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
LOGGING = LOGGING
мой локальный файл:
from .settings import *
DATABASES = {
'default': {
'ENGINE': POSTGRESQL_CONNECTION['ENGINE'],
'NAME': POSTGRESQL_CONNECTION['DATABASE'],
'user': POSTGRESQL_CONNECTION['USER'],
'PASSWORD': POSTGRESQL_CONNECTION['PASSWORD'],
'HOST': POSTGRESQL_CONNECTION['HOST'],
}
}