DEBUG = os.environ['DEBUG_VALUE']
DEBUG_VALUE = False
DEBUG = False
を手動で追加すると、機能し、500エラーが表示されます。os.environ
値を使用すると、Djangoはそれを無視します。DEBUG_VALUE
がFalseであることを確認しましたが、ファイルに出力しています。DEBUG = bool(os.environ['DEBUG_VALUE'])
os.environ['DEBUG_VALUE']
の値は、文字列とbool('non empty string') == True
です。DEBUG = os.environ['DEBUG_VALUE'] == 'TRUE'
django-environ
パッケージには、これを管理する簡単な方法があり、文字列値を手動で解析するよりも堅牢でエレガントだと思います(常にtrueと評価されます)。環境をオブジェクトとしてインポートできます。export MY_DEBUG_ENV_VAR=False
pip install django-environ
import environ
env = environ.Env()
MY_DEBUG_ENV_VAR = env.bool('MY_DEBUG_ENV_VAR', default=False)
try:
DEBUG = DEBUG_VALUE_LOCAL
except NameError:
DEBUG = os.environ.get('DEBUG_VALUE').lower() == 'true'
# Set DEBUG flag. Default is 0 (considered as False in conditions)
DEBUG = int(os.environ.get('DEBUG_VALUE', 0))
strtobool
のdistutils.util
を使用することです。#import distutls
# if you using python version > 3 use from distutils import strtobool
from distutils.util import strtobool
_DEBUG = bool(strtobool(os.environ['DEBUG_MODE']))