開発サーバーは django1.3 を使用しますが、展開サーバーは django1.4 を使用しています。Messages フレームワークは django1.4 ではまったく動作しませんが、1.3 では次のコードでうまく動作します。
設定.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
... ,
)
ビュー.py
from django.contrib import messages
from django.http import HttpResponseRedirect
...
def some_view(request):
...
mess1 = 'Thank you! Your message was received.'
messages.info(request, mess1)
return HttpResponseRedirect('/contact/')
テンプレート
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
{% endif %}