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

Gra*_*ave 5 django django-templates django-errors django-allauth django-1.6

我正在实现自定义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
Run Code Online (Sandbox Code Playgroud)

我想知道后台(也许在RequestContext中)是否在处理500与404不同的问题?我应该提到,我也在使用django-guardian,尽管我认为这不会影响任何情况。有任何想法吗?

编辑: 此评论声称“ 500模板将不会呈现request.user,因为它报告了500服务器错误,因此服务器无法提供任何服务。” 有谁知道解决这个问题的方法吗?似乎应该有一个,因为,就像我说的那样,我在错误报告电子邮件中收到的日志显然带有带有用户名的请求对象。

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

Gra*_*ave 3

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

handler500 = "mysite.views.handler500"
Run Code Online (Sandbox Code Playgroud)

非常奇怪的是,404 在没有等效线路的情况下工作得很好,但 500 的行为确实很奇怪。