1

Django でメッセージ ミドルウェアを使用しようとしていますが、ビューでまったくレンダリングされません。私が持っているもの:

ビュー.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 に追加しました。注:Django 1.2以降に存在するはずのTEMPLATE_CONTEXT_PROCESSORSがなかったので、追加しました。正しく動作していない可能性があり、これが問題である可能性があると思いますが、正しく構成されているかどうかを確認する方法がわかりません。
  • https://docs.djangoproject.com/en/dev/ref/contrib/messages/に従ってセットアップしました。
4

1 に答える 1

4

テンプレートコンテキストプロセッサをテンプレートで使用できるようにするには、 (デフォルトで使用する)RequestContextだけでなく、テンプレートをレンダリングする必要があります。ドキュメントのセクションを確認してから、以下を変更してください。Contextrender_to_responseoptional argumentsrender_to_response

return render_to_response('base.html', context_instance=RequestContext(request))
于 2012-04-18T08:34:26.797 に答える