development server use django1.3 but deployment server is powered by django1.4. Messages framework won't work at all on the django1.4 but works great on 1.3 with following code.
settings.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',
... ,
)
views.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/')
template
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
{% endif %}