[Fixed]-What could cause a Django error when debug=False that isn't there when debug=True

7👍

This happens if you have a circular import in one of your files. Check and see if you are importing something from Project and then importing something in Project from the original file that originally imported Project.

I ran into this same problem recently, and rearranging some of my imports helped fix the problem.

75👍

Just to say, I ran into a similar error today and it’s because Django 1.5 requires the ALLOWED_HOSTS parameter in the settings.
You simply need to place this row to make it work 😉

...
ALLOWED_HOSTS = '*'
...

However, be aware that you need to set this parameter properly according to your actual host(s) (https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts)!

Values in this list can be fully qualified names (e.g. ‘www.example.com’), in which case they will be matched against the request’s Host header exactly (case-insensitive, not including port). A value beginning with a period can be used as a subdomain wildcard: ‘.example.com’ will match example.com, www.example.com, and any other subdomain of example.com. A value of ‘*’ will match anything; in this case you are responsible to provide your own validation of the Host header (perhaps in a middleware; if so this middleware must be listed first in MIDDLEWARE_CLASSES).

So basically it’s better for you to use this type of configuration once you’re in production:

...
ALLOWED_HOSTS = [
    '.yourdomain.com',
]
...

thanks to gertvdijk for pointing this out

👤VAShhh

1👍

This can also happen if you do not have both a 500.html and 404.html template present. Just the 500 isn’t good enough, even for URIs that won’t produce a 404!

👤hed

1👍

I had this problem as well. Although it persisted even when setting Allowed_hosts and already having 404 and 500 templates.

I also checked for circular imports, but that was not it.

I finally had django produce a log file, https://stackoverflow.com/a/15100463/1577916

I accidentally left in a “get_host” function which now exists under
HttpRequest (changed to HttpRequest.get_host())with Django 1.5.

for some reason that was not raising an error with Debug True OR False.

Leave a comment