Я развернул свое приложение Wagtail на Heroku и хочу, чтобы переменная 'DEBUG' была False при производстве. Я написал некоторый код в файле init .py, который проверяет переменную среды 'ENV', чтобы решить, какой файл Python выполнять. В производстве он должен выполнять только production.py, но это не так. Код на самом деле работает, потому что он не печатает мое сообщение отладки в случае, если я нахожусь в среде разработки, но каким-то образом dev.py выполняется после production.py
Я попытался удалить переменную 'DEBUG'из обоих файлов (production.py и dev.py), чтобы поместить их в init .py и определить его значение в соответствии с окружением. Это работает, DEBUG становится False в работе, но кажется, что мои статические файлы больше не загружаются.
#__init__.py
import os
ENV = os.getenv('GLITCHYWARE_ENV', 'dev')
if ENV == 'dev':
print('DEV')
from .dev import *
elif ENV == 'prod':
print('PROD')
from .production import *
Журнал:
$ python manage.py collectstatic --noinput
PROD
The production.py code is executed
The dev.py code is executed #1
Как видите, dev.pyвыполняется после production.py, а не шесть раз, я просто помещаю много операторов print.