1
我试图在Django中使用消息中间件,但视图根本不会显示它。我拥有的一切:Django中的消息中间件不能在模板中显示
views.py
messages.success(request, 'Test message.')
return render_to_response('base.html')
template.html
<ul class="messages">
{% for message in messages %}
<li class="{{ message.tags }}">{{ message }}</li>
{% endfor %}
</ul>
当我做到这一点的看法:
for message in messages.get_messages(request):
print message
它打印一个消息,每次自从我上次使用这个函数以来,我调用了视图,所以它肯定会将消息保存在某个地方。它只是没有发送到模板。
附加信息:
- Django的版本=(1,2,3, '最终',0)
- 我加入 'django.contrib.messages.context_processors.messages' 来TEMPLATE_CONTEXT_PROCESSORS。注意:我没有TEMPLATE_CONTEXT_PROCESSORS,即使它应该在Django 1.2之后,所以我只是添加了它。我猜它可能不能正常工作,这可能是问题,但我不知道如何检查它是否正确配置。
- 我按照https://docs.djangoproject.com/en/dev/ref/contrib/messages/进行设置。
谢谢,这帮助,但我认为这是没有必要的,如果我加入“django.contrib.messages.context_processors.messages”到TEMPLATE_CONTEXT_PROCESSORS。或者我还需要他们两个吗? – olofom 2012-04-18 08:43:02
将它添加到'TEMPLATE_CONTEXT_PROCESSORS'只是表示它已被启用。你需要在你的视图中使用'RequestContext'来真正地使模板中的'TEMPLATE_CONTEXT_PROCESSORS'中使用的所有上下文处理器都可用。 – 2012-04-18 08:48:33
此外,检查'渲染'快捷方式:https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render – Dor 2012-04-18 08:49:08