我正在使用 Django 1.1.1 稳定版。何时DEBUG
设置为True
Django flatpages可以正常工作;我尝试访问的每个平面页面何时DEBUG
会False
引发自定义 404 错误(我的错误模板显然工作正常)。
在互联网上搜索建议创建我已经完成的 404 和 500 模板。
我已添加到FlatpageFallBackMiddleware
middleware_classes 和 flatpages 已添加到已安装的应用程序中。有什么想法可以让平面页面工作吗?
我正在使用 Django 1.1.1 稳定版。何时DEBUG
设置为True
Django flatpages可以正常工作;我尝试访问的每个平面页面何时DEBUG
会False
引发自定义 404 错误(我的错误模板显然工作正常)。
在互联网上搜索建议创建我已经完成的 404 和 500 模板。
我已添加到FlatpageFallBackMiddleware
middleware_classes 和 flatpages 已添加到已安装的应用程序中。有什么想法可以让平面页面工作吗?
同样的事情发生在我身上,直到我发现 404 视图正在发送 200 状态响应。因此,您所要做的就是将其添加到处理 404 响应的视图中:
def 404_handler(request): ...
response = render_to_response('404.html', locals(), context_instance=RequestContext(request))
response.status_code = 404
return response
尝试添加FlatpageFallBackMiddleware
之前django.middleware.common.CommonMiddleware
并确保您的 404.html 和 500.html 存储在模板目录的根目录中(eg: templates/404.html)
关键是检查中间件的顺序。中间件在传入(请求和视图)的过程中以自上而下的顺序执行,在退出的过程中以自下而上的顺序执行(响应和异常)。因此,如果您在应该是一个完全合理的平面页面 URL 上访问 404 处理程序,那么在调用平面页面中间件之前,有些东西正在捕获 404。
在不同的上下文中出现相同的错误。问题是由我更改文件引起urls.py
的
from django.conf.urls.defaults import *
至
from django.conf.urls.defaults import include, patterns
正如所建议的那样pylint
,但这省略了 handler404 和 handler500 预计将通过 import 隐式导入*
。
因此,无论是将这些添加到导入还是仅*
作为 django 文档建议导入都可以解决问题。
制作一个打印堆栈跟踪的错误处理视图,import traceback;traceback.print_exc()
而不是默默地忽略错误。