Django中的自定义错误400/500页面

时间:2016-12-31 08:12:18

标签: django

有一些奇怪的问题。当我喜欢这个时

def error_page(request):
    return HttpResponseBadRequest

它引发了我在主URLconf中列出的自定义错误页面。 但是当我在那里传递和例外时 - 我只得到一个带有异常文本的空白页面。 例如,视图是这样的:

def error_page(request):
    return HttpResponseBadRequest('The error text')

我得到一个空白页面,其中包含"错误文本"正文中的文字,但不是我的自定义错误页面。如何让Django使用我的错误页面模板,但是有错误文本?

我使用的是Python 3.5和Django 1.10.4

1 个答案:

答案 0 :(得分:0)

您可以参考以下链接创建自定义错误页面。 Django, creating a custom 500/404 error page

要传递自定义消息,您可以使用django消息

参考:https://docs.djangoproject.com/en/1.10/ref/contrib/messages/

<强> views.py

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}

在模板中,您可以在模板中加载消息:

400.html

中的

DEBUG = False

别忘了在ALLOWED_HOSTS = ['localhost']中设置settings.py和{{1}},否则Django会抓住错误。