我正在尝试在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
自从我上次使用此函数以来,每次调用视图时都会打印一条消息,所以它肯定会在某处保存消息。它只是没有发送到模板。
其他信息:
答案 0 :(得分:3)
您需要使用RequestContext
而不是Context
(默认情况下render_to_response
使用)呈现模板,以使模板中的上下文处理器可用。查看optional arguments
section of the render_to_response
docs然后更改:
return render_to_response('base.html', context_instance=RequestContext(request))