Django无法识别DEBUG = False

时间:2018-03-01 22:34:31

标签: python django

我正在尝试为我的Django项目开发404和500错误自定义模板。

当我将DEBUG更改为False时,Django总是返回我:

  

您看到此错误,因为您的Django设置文件中有DEBUG = True。将其更改为False,Django将显示标准的404页面。

将ALLOWED_HOSTS更改为['.domain.com','www.domain.com']后,我获得:

  

无效的HTTP_HOST标头:'domain.com'。您可能需要将u'domain.com'添加到ALLOWED_HOSTS。

我做错了什么?为什么Django不识别变量?

2 个答案:

答案 0 :(得分:1)

为了它的价值,当我创建自定义404/500模板时,我发现设置基于临时类的TemplateView更容易,然后一旦我完成设计它们就会被移动到Django寻找它们的模板文件夹中。原因是,一旦你通过DEBUG问题,你的下一个障碍可能是提供你的静态文件;在典型的设置中,当DEBUG = False时,它们将不会在您的开发机器上提供(除非您已将其配置为这样做)。这很重要,因为您创建的模板可能依赖于这些文件(css,js文件等)。无论哪种方式:

1)确保其读取完全符合:

DEBUG = False

2)确保它没有嵌套在if / else语句或类似的东西中。

3)在您的开发环境中,您可以保持ALLOWED_HOSTS = ['localhost']来禁止域警告。

4)如果所有其他方法都失败了,你可以在另一个目录中启动一个新项目,并将自动生成的settings.py文件与你拥有的文件进行比较。

答案 1 :(得分:1)

在项目中查找DJANGO_SETTINGS_MODULE环境变量。

它的值是python路径语法。使用它来查找设置文件,因为它是django使用的文件,并确保DEBUG = False。此外,您可以添加print语句,该语句提供有关服务器启动的一些可视反馈。

通过执行python manage.py runserver保存配置后重新启动开发服务器。