将变量传递给http404 django

时间:2015-06-17 07:46:43

标签: python django

我正在尝试将变量传递给404.html模板。我可以调用404.html但无法传递任何值。我怎么能这样做?

我想要这样的东西。

raise Http404({'error', 'acb_error')

1 个答案:

答案 0 :(得分:0)

查看Http404例外docs

  

为方便起见,并且因为在您的站点上有一个一致的404错误页面是个好主意,Django提供了一个Http404异常。如果您在视图函数中的任何位置引发Http404,Django将捕获它并返回应用程序的标准错误页面,以及HTTP错误代码404.

以下是文档中的示例用法:

from django.http import Http404
from django.shortcuts import render_to_response
from polls.models import Poll

def detail(request, poll_id):
    try:
        p = Poll.objects.get(pk=poll_id)
    except Poll.DoesNotExist:
        raise Http404("Poll does not exist")
    return render_to_response('polls/detail.html', {'poll': p})

修改

意识到除非你DEBUG = True,否则这对你不起作用;因此,你可以使用类似的东西:

return HttpResponseNotFound('<h1>Error</h1><p>acb_error</p>')

另外,请查看答案here,了解有关将自定义数据传递到标准404页面的提示。