Django不承认DEBUG = False

问题描述 投票:-1回答:2

我正在尝试为我的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不识别变量?

python django
2个回答
1
投票

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

1)确保其读取完全如下:

DEBUG = False

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

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

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.