Django如何在handler404中发送参数?

时间:2016-10-05 10:11:38

标签: python django python-3.x django-views python-3.5

如何覆盖handler404以将参数传递到视图中?

我需要传递参数texterror

# views.py
def handler404(request, error, text):
    response = render_to_response('error/40X.html', {'error': error, 'text':text})
    response.status_code = error
    return response

urls.py中的404处理程序代码是:

handler404 = 'app.views.handler404'

我正在使用Django v1.10和Python v3.5,并且希望避免为每个错误创建一个函数。

  

问题已翻译,我将非常感谢更正,original

1 个答案:

答案 0 :(得分:1)

我认为您不需要在此处查看自定义handler404视图。 Django的page_not_found视图可以满足您的需求。

在Django 1.9+中,您可以在404模板中包含{{ exception }}

在您的视图中,您可以在引发异常时设置消息,例如:

from django.http import Http404

def my_view(request):
    raise Http404('custom error message')

在处理程序中设置response.status_code是没有意义的 - 如果它是handler404,那么状态代码应该始终为404.