我的404设置中有一个错误。我知道因为,当我尝试访问一些不存在的页面时,我得到了我的服务器错误模板。但是这些模板没用,因为它没有给我任何调试信息。为了获得django的调试页面,我需要在设置文件中设置DEBUG = True。但是如果我这样做,bug就不会出现,因为django没有尝试访问我的错误404设置。那你觉得怎么样?
这是在我的根网址文件中:
handler404 = 'portal.blog.views.handlenotfound'
这是在portal.blog.views.handlenotfound:
def handlenotfound(request): global common_data datas = { 'tags' : Tag.objects.all(), 'date_list' : Post.objects.filter(yayinlandi=True).dates("pub_date","year") } data.update(common_data) return render_to_response("404.html",datas)
<小时/> 编辑:
我想我还需要返回一个HttpResponseNotFound吗?
答案 0 :(得分:2)
data.update(common_data)
应为datas.update(common_data)
。
(顺便提一下,数据已经是复数:单数是基准。)
答案 1 :(得分:2)
如果我必须调试这种错误,我会
暂时将处理程序转换为自定义网址提供的简单视图,以便django的内部机制不会妨碍,或者
(暂时)将处理程序代码包装在try..except块中以记录您可能错过的任何错误
无论如何,如果DEBUG = true,你确定你的处理程序不会被调用吗?