メッセージミドルウェアを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)
- IはTEMPLATE_CONTEXT_PROCESSORSに 'django.contrib.messages.context_processors.messages' を追加しました。注意:Django 1.2以降、TEMPLATE_CONTEXT_PROCESSORSは存在しませんでしたが、これを追加しました。私はそれが正常に動作していない可能性があり、これは問題かもしれないと思うが、私はそれが正しく構成されているかどうかを確認する方法を知らない。
- 私はそれに続いてhttps://docs.djangoproject.com/en/dev/ref/contrib/messages/に従った。
おかげで、。とにかく私は両方とも必要ですか? – olofom
これを 'TEMPLATE_CONTEXT_PROCESSORS'に追加すると、それが有効になっていることを意味します。テンプレートで 'TEMPLATE_CONTEXT_PROCESSORS'で使われているすべてのコンテキストプロセッサを実際に利用できるようにするには、ビュー内の' RequestContext'を使う必要があります。 –
また、 'render'ショートカットをチェックしてください:https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render – Dor