我有一个500.html模板,只要我的应用程序爆炸就会加载,但我想知道是否有任何方法可以在模板中输出异常消息?
所以,如果我这样做:
raise Exception("You broke it!")
当DEBUG标志设置为True时,这将加载500.html但是如何在模板中访问异常消息?类似的东西:
{{ exception.message }}
非常感谢。
答案 0 :(得分:18)
看看这个答案:
How do I include a stacktrace in my Django 500.html page?
将异常传递给您的模板/用户并不好,因为它可能会显示您不希望外部使用的一些内部工作,但如果您确实需要,您可以编写自己的500视图,抓住异常并将其传递给您的500模板
<强> views.py 强>
def custom_500(request):
t = loader.get_template('500.html')
type, value, tb = sys.exc_info(),
return HttpResponseServerError(t.render(Context({
'exception_value': value,
})))
urls.py
中的某个地方handler500 = 'mysite.views.my_custom_error_view'
<强>模板强>
{{ exception_value }}
更多相关信息:https://docs.djangoproject.com/en/1.6/topics/http/views/#the-500-server-error-view
答案 1 :(得分:3)
我知道这是一个老话题,但我只想说清楚:
如果你想要一个custon视图,答案是正确的!默认视图将从项目的主模板目录加载500.html(也是404.html和其他),如果它在那里。
因此,如果您只需要更改静态页面内容,例如在错误页面中插入一些图像,那么您只需要在此处创建模板文件。