Reputation: 520
I currently have a running production Django application on Heroku. Unfortunately, I haven't been able to turn off the DEBUG
setting on Heroku. Turning it off locally works fine, but when pushed to Heroku (after heroku config:set DEBUG=False
), it doesn't apply.
The error pages are still the default DEBUG
ones instead of the 404, 403, and 500 templates in our template root.
I have also tried using a DJANGO_DEBUG
setting in case there were any environment conflicts with DEBUG
, and casting the result to a boolean in the settings file. heroku config
shows the settings in the environment are correct. This is on Django 1.3, Heroku Cedar.
Any tips or solutions?
Upvotes: 15
Views: 6812
Reputation: 661
The problem is that the environment variable is not a boolean, rather a string.
So do place below line in settings.py
DEBUG = (os.environ.get('DEBUG_VALUE') == 'True')
Upvotes: 4
Reputation: 118458
Does your django settings.py file even look in the environment?
It does not, by default, care about anything you've set in the environment (via "config:set"). If you're "casting" the environment to a boolean, make sure you're casting it correctly. bool('False') is still True.
It's simplest just to detect if the environment variable exists so you don't have to worry about type casting or specific formats of the configuration.
DEBUG = os.environ.get('DEBUG', False)
To disable debug, remove the variable from the environment instead of trying to type cast... it just seems much more reliable and fool proof. config:unset DEBUG
Upvotes: 21