Django自定义500错误模板不显示request.user

时间:2014-09-25 16:08:37

标签: django django-templates django-allauth django-1.6 django-errors

我正在实施自定义404和500模板,但是当404.html模板似乎返回request.user.is_authenticated时,500.html模板无法返回任何内容。我还检查了request.user,它在500页面上只是空白。

这很奇怪,因为当我触发500错误时,我会收到预期的错误报告电子邮件,并且它明确地在请求细分中正确定义了USER。这是我在views.py中使用的代码:

def handler404(request):
    response = render_to_response('404.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 404
    return response


def handler500(request):
    response = render_to_response('500.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 500
    return response

我想知道后台的某些内容(可能是在RequestContext中)是否正在处理与404不同的500个内容?我应该提到我也使用django-guardian,虽然我不认为这会影响案件中的任何事情。有什么想法吗?

修改: This comment声明" 500模板无法呈现request.user,因为它报告了500服务器错误,因此服务器无法提供任何东西。"有没有人知道这方面的方法?好像应该有一个因为,就像我说的那样,我在错误报告中收到的日志电子邮件中明确地有一个带有用户名的请求对象。

编辑2:现在我想知道它是否与django-allauth有关 - 我也在使用它。

1 个答案:

答案 0 :(得分:3)

我明白了!我必须将以下行添加到urls.py:

handler500 = "mysite.views.handler500"

很奇怪404如果没有等效的线路如何工作正常,但500个行为真的很奇怪。