2

如何使用干净通用的方式传递错误以在模板中显示它们?

我想通过覆盖框消息显示错误。

  • 为每个返回传输一个错误对象?
  • 在会话中推送它,并在模板中检查它?
  • 使用 Ajax 方法从模板中检查?
  • 使用常见的错误模板页面?(不是很用户友好..)

使用 HttpResponseRedirect 时我很困惑;除非使用会话变量,否则不可能传递错误。

4

1 回答 1

10

通常的方法是使用Django 的消息框架,就像 Rohan 说的那样。

在您的视图中的任何地方,您都可以使用此代码将错误传递给模板:

from django.contrib import messages


def my_view(request):
    …
    messages.error(request, 'Oops, something bad happened')
    return redirect…

您可以在base.html模板中添加以下代码以显示这些消息(此处使用引导类):

{% if messages %}
<div class="span12">
{% for message in messages %}
    <div class="alert alert-{{ message.tags }}">
        {{ message|safe }}
    </div>
{% endfor %}
</div>
{% endif %}
于 2013-08-26T09:17:39.867 回答