首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 1.6消息未显示

Django 1.6消息未显示
EN

Stack Overflow用户
提问于 2014-02-06 19:54:30
回答 1查看 263关注 0票数 0

我遵循文档将必要的内容导入到我的设置、视图和模板中。然而,没有消息显示。

代码语言:javascript
复制
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',
    # Uncomment the next line for simple clickjacking protection:
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',

示例视图:

代码语言:javascript
复制
from django.contrib import messages

def add_news(request):
    if request.method == 'POST':
        form = NewsForm(request.POST)
        if form.is_valid():
            form.save()
            messages.info(request, "News was added") 
            return HttpResponseRedirect('/')

    if request.method == 'GET':
        form = NewsForm()
        args = {}
        args.update(csrf(request))
        args['form'] = form
        return render_to_response('news/add_news.html', args)

在base.html中,我有:

代码语言:javascript
复制
  {% block messages %}
            {% if messages %}
            <ul class="messages">   
            {% for message in messages %}
               <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
             {% endfor %}
             </ul>
        {% endif %}
  {% endblock messages %}

我应该如何调试这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-06 20:14:01

消息传递框架使用处理器将消息传递给模板。为了确保将来自context_processors的变量实际添加到呈现模板的上下文中,您必须在视图中使用RequestContext

如果使用上下文处理器,则模板应该使用RequestContext呈现。否则,确保消息可用于模板上下文。

您使用的是render_to_response方法,默认情况下它不会这样做。您要么需要指定RequestContext的使用,要么使用render函数代替它,这在默认情况下是这样做的。

代码语言:javascript
复制
return render_to_response('news/add_news.html',
                      args,
                      context_instance=RequestContext(request))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21612678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档