我想知道在 Django 中显示简单消息的正确方法是什么。我指的是不值得为其创建专用模板的简单消息。诸如:错误的激活密钥,您的帐户已被激活,您可以开始使用它等等。如果我为每个错误/信息消息创建一个模板,我最终会创建数十个模板。
当然,我需要将这些消息显示在当前应用程序的布局中。
请指教。
我想知道在 Django 中显示简单消息的正确方法是什么。我指的是不值得为其创建专用模板的简单消息。诸如:错误的激活密钥,您的帐户已被激活,您可以开始使用它等等。如果我为每个错误/信息消息创建一个模板,我最终会创建数十个模板。
当然,我需要将这些消息显示在当前应用程序的布局中。
请指教。
你为什么不使用django 消息框架?
您可以将它与任何模板一起使用
您可以创建一个接受错误消息变量的通用模板,然后它会显示该变量。显然,通过这种方法,您可以使用模板的所有功能,例如扩展等。
{% inherit 'base.html' %}
{% block content %}
{{ message }}
{% endblock %}
在视图中:
def foo_view(request):
message = 'Some message here'
data = {'message': message}
return render_to_response('message_template.html', data)
最好的方法是使用 Pradnya Mhatre 建议的 django 消息框架。我通常将消息放在基本模板中,如下所示:
base.html:
{% block messages %}
{% if messages %}
{% for message in messages %}
<div class="{{message.tags}} box">
<p>
{{ message|safe }}
</p>
</div>
{% endfor %}
{% endif %}
{% endblock %}
在视图中,您可以放置:
django.contrib.messages.add_message(请求,django.contrib.messages.ERROR,消息))
您可以在此处放置错误、信息和成功消息。
您的视图将如下所示:
import django.contrib.messages
import django.shortcuts
def some_view(request):
do_something()
django.contrib.messages.add_message(request, django.contrib.messages.SUCCESS, 'It worked \o/')
return django.shortcuts.render_to_response(
'template_that_extends_base.html',
{},
context_instance=django.template.RequestContext(request))