我正在尝试将变量传递给404.html模板。我可以调用404.html但无法传递任何值。我怎么能这样做?
我想要这样的东西。
raise Http404({'error', 'acb_error')
答案 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页面的提示。