Я использую пакет environ
. Я хочу, чтобы мои стандартные (производственные) настройки были в файле settings.py. Но я хочу изменить пару настроек в зависимости от настройки DEBUG=1
в моем файле .env
. Примерно так:
env = environ.Env(
DEBUG=(bool, False),
SECRET_KEY=(str, ''),
DATABASE_URL=(str, 'postgres://testing:testing@localhost/testing'),
)
if os.path.exists(env_file):
env.read_env(env_file)
DEBUG = env.bool('DEBUG')
SECRET_KEY = env.str('SECRET_KEY')
if DEBUG and not SECRET_KEY:
SECRET_KEY = 'xxx'
# Default '@localhost' is needed for the production server. But that will probably fail
# on development machine. Write "DEBUG=1" to ".env" file to enable.
if DEBUG:
DATABASE_URL = 'postgres://testing:testing@testing_postgres/testing'
DATABASES = {'default': env.db()}
Чтение файла и получение настройки DEBUG
работает, но я не могу найти способ перезаписать переменную DATABASE_URL
, ранее установленную environ.Env
.
Есть ли способ перезаписать ранее установленное значение (частично перезаписать env)?