【问题标题】:Django how to send a argument in handler404?Django如何在handler404中发送参数?
【发布时间】:2017-02-13 17:37:52
【问题描述】:

如何覆盖 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

【问题讨论】:

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


    【解决方案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。

    【讨论】:

    • handler404用于状态码404,还有other handlers用于其他代码。
    猜你喜欢
    • 2016-12-27
    • 2013-12-23
    • 1970-01-01
    • 2013-10-10
    • 2016-05-11
    • 2020-05-13
    • 1970-01-01
    • 2021-01-07
    • 2016-08-07
    相关资源
    最近更新 更多