Django 404困境

时间:2011-08-13 16:46:18

标签: django http-status-code-404

我的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吗?

2 个答案:

答案 0 :(得分:2)

data.update(common_data)应为datas.update(common_data)

(顺便提一下,数据已经是复数:单数是基准。)

答案 1 :(得分:2)

如果我必须调试这种错误,我会

  • 暂时将处理程序转换为自定义网址提供的简单视图,以便django的内部机制不会妨碍,或者

  • (暂时)将处理程序代码包装在try..except块中以记录您可能错过的任何错误

无论如何,如果DEBUG = true,你确定你的处理程序不会被调用吗?