【问题标题】:Django 404 dilemmaDjango 404 困境
【发布时间】:2011-08-13 16:46:17
【问题描述】:

我的 404 设置中有一个错误。我知道,因为当我尝试访问某个不存在的页面时,我得到了我的服务器错误模板。但是那个模板没有用,因为它没有给我任何调试信息。为了得到 django 的调试页面,我需要在设置文件中设置 DEBUG=True。但是,如果我这样做,则不会出现错误,因为 django 不会尝试访问我的错误 404 设置。那你们怎么看?

这是在我的根 urls 文件中: handler404 = 'portal.blog.views.handlenotfound' 这是在 portal.blog.views.handlenotfound 中:

定义句柄未找到(请求):
    全局 common_data
    数据 = {
        '标签' : 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 对吧?

【问题讨论】:

  • 我接受了 ftartaggia 的回答,虽然 isbadawi 的回答实际上解决了我的问题,因为他的回答实际上回答了这个问题。

标签: django http-status-code-404


【解决方案1】:

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

  • 暂时将处理程序变成一个由自定义 url 服务的简单视图,这样 django 的内部机制就不会碍事,或者

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

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

【讨论】:

    【解决方案2】:

    data.update(common_data) 应该是datas.update(common_data)

    (顺便说一下,data 已经是复数了:单数就是 datum。)

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 2017-10-08
      • 2016-02-04
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多