当debug = False时,会导致Django错误,debug = True时不存在

使用开发服务器,它与debug = True或False一起使用。

在生产中,如果debug = True,一切正常,但如果debugging= False,我得到一个500错误和Apache日志结束导入错误:“ImportError:无法导入名称项目”。

在导入中没有任何事情可以做任何有条件的debugging – 唯一的代码是开发服务器是否应该提供静态文件(在生产中,Apache应该处理这个问题 – 这是单独testing,工作正常)。

如果您在其中一个文件中有循环导入,则会发生这种情况。 检查并查看是否从Project导入了某些内容,然后从原始导入Project的原始文件中导入Project中的某些内容。

最近我遇到了同样的问题,重新安排了一些我的进口产品帮助解决了这个问题。

只是说,我今天遇到了类似的错误,这是因为Django 1.5需要在设置中使用ALLOWED_HOSTS参数。 你只需要放置这一行来使其工作;)

 ... ALLOWED_HOSTS = '*' ... 

但是,请注意 ,您需要根据您的实际主机( https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts )正确设置此参数!

此列表中的值可以是完全限定的名称(例如“www.example.com”),在这种情况下,它们将与请求的主机标头完全匹配(不区分大小写,不包括端口)。 以句号开头的值可以用作子域名通配符:“.example.com”将与example.com,www.example.com以及example.com的任何其他子域名匹配。 值“*”将匹配任何东西; 在这种情况下,你有责任提供你自己的主机头的验证(也许在一个中间件;如果这样的话,这个中间件必须在MIDDLEWARE_CLASSES中首先列出)。

所以基本上,一旦你在生产中使用这种类型的配置会更好:

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

感谢gertvdijk指出这一点

如果您没有500.html和404.html模板,也会发生这种情况。 只是500不够好,即使对于不会产生404的URI也是如此!

我也有这个问题。 即使设置了Allowed_hosts并且已经有了404和500个模板,它仍然存在。

我也检查了通货进口,但事实并非如此。

我终于有django产生一个日志文件, https://stackoverflow.com/a/15100463/1577916

我不小心留在一个“get_host”函数中,该函数现在存在于HttpRequest下(使用Django 1.5更改为HttpRequest.get_host())。

由于某些原因,调试错误不会引起错误。