我试图通过将500.html文件放在模板文件夹中来为django应用定义自定义500错误。
{% extends "base.html" %}
{% load static %}
{% block body %}
<div class="container">
<div class="row">
UPS, algo fue mal.
</div>
</div>
{% endblock %}
淘汰第一行(扩展了网络的骨架),它起作用了,但是有了它,我得到了这个消息:
A server error occurred. Please contact the administrator.
我正在为404错误做同样的事情,而且我工作得很好。我在这里完全迷路了。
您的base.html
可能期望某些上下文不会被默认500视图传递。从documentation:
默认的500视图不会将任何变量传递到500.html模板,并使用空的Context呈现,以减少出现其他错误的机会。
如果是这种情况,您可以:
base.html
在空的上下文中可以正常工作,或者我认为选项1是首选选项,因为它可以确保始终显示500页。不利之处在于base.html
中的任何更改,您可能也必须将其应用于500模板。
选项3是最不优选的,因为它带来500页无法渲染的最高风险,例如如果500是由于数据库不可用而引起的,并且您的自定义500视图尝试使用该数据库。