我正在运行Django 1.2 beta并试用新功能:消息框架。
http://docs.djangoproject.com/en/dev/ref/contrib/messages/
一切似乎都有效,但当我尝试输出消息时,我什么也得不到。似乎messages
变量为空。我仔细检查了所有设置,它们似乎就像在手册中一样。可能有什么不对?
settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', #send messages to users
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
#debug tool
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.messages.context_processors.messages', #send messages to users
'django.core.context_processors.auth',
)
#Store messages in sessions
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage';
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
#'django.contrib.sites',
'django.contrib.admin',
'django.contrib.messages',
'debug_toolbar',
#my apps
#...
)
views.py
def myview(request):
from django.contrib import messages
messages.error(request, 'error test');
messages.success(request, 'success test');
return render_to_response('mytemplate.html', locals());
mytemplate.html
{% for message in messages %}
{{ message }}<br />
{% endfor %}
在模板中没有输出任何内容。
答案 0 :(得分:5)
您需要在RequestContext
的通话中使用render_to_response
。
return render_to_response('mytemplate.html', locals(),
context_instance=RequestContext(request))
请在this documentation section下的几个屏幕下查看备注。