自定义模板中的Django 500消息

giv*_*ivp 10 django django-templates

我有一个500.html模板,只要我的应用程序爆炸就会加载,但我想知道是否有任何方法可以在模板中输出异常消息?

所以,如果我这样做:

raise Exception("You broke it!")
Run Code Online (Sandbox Code Playgroud)

当DEBUG标志设置为True时,这将加载500.html但是如何在模板中访问异常消息?就像是:

{{ exception.message }}
Run Code Online (Sandbox Code Playgroud)

非常感谢.

G

Tim*_*ony 18

看看这个答案:

如何在我的Django 500.html页面中包含堆栈跟踪?

将异常传递给您的模板/用户并不好,因为它可能会显示您不希望外部可用的一些内部工作,但如果您确实需要,您可以编写自己的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,
})))
Run Code Online (Sandbox Code Playgroud)

urls.py的某个地方

handler500 = 'mysite.views.my_custom_error_view'
Run Code Online (Sandbox Code Playgroud)

模板

{{ exception_value }}
Run Code Online (Sandbox Code Playgroud)

更多关于它的信息:https://docs.djangoproject.com/en/1.6/topics/http/views/#the-500-server-error-view