# urls or settings
handler500 = 'mysite.views.server_error'
# views
from django.shortcuts import render
def server_error(request):
# one of the things ‘render’ does is add ‘STATIC_URL’ to
# the context, making it available from within the template.
response = render(request, '500.html')
response.status_code = 500
return response
值得一提的是Django默认不这样做的原因:
“默认的500视图不会将变量传递给500.html模板,并使用空的Context进行渲染,以减少出现其他错误的可能性 . ” - Adrian Holovaty,Django文档
3 回答
我是这样做的:
值得一提的是Django默认不这样做的原因:
我遇到了同样的问题,发现了一个不需要自定义模板或处理程序的解决方案 . 从Django 1.4开始,当标记不在上下文中时,您可以使用标记get_media_prefix和get_static_prefix来访问MEDIA_URL和STATIC_URL .
在我的特殊情况下(Django 1.5),我想在我的页面500.html中访问一些静态图像 . 我刚刚在模板的开头添加了
然后使用这些标签获取媒体和静态网址
你可以在这里找到官方文件:https://docs.djangoproject.com/en/1.5/ref/templates/builtins/#get-static-prefix
我相信你只需要覆盖默认的404/500错误处理 . 这应该让你开始:
http://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views