【问题标题】:django messages not showingdjango 消息未显示
【发布时间】:2012-08-03 18:31:35
【问题描述】:

我正在尝试使用 django 消息框架在用户退出我的应用程序时显示消息。我是 django 新手,文档对我来说不是很清楚。为什么我的消息没有显示?

https://docs.djangoproject.com/en/dev/ref/contrib/messages/#adding-a-message

VIEW.PY

from django.contrib import messages

def signout(request):
    logout(request)
    messages.add_message(request, messages.INFO, 'Signout Successful.')
    return HttpResponseRedirect(reverse(index))

def index(request):
    lf = LoginForm()
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                auth_login(request, user)
    return render_to_response('test/home.html', {'login_form': lf,}, context_instance=RequestContext(request))

模板 - 索引

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}

我正在使用 django1.3。并且以下是必需的(注意 .tz 被注释掉了)

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    #"django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages")

来自 TEMPLATE_CONTEXT_PROCESSORS 的文档:

Django 1.3 中的新功能:此版本中添加了 django.core.context_processors.static 上下文处理器。

Django 1.4 中的新功能:此版本中添加了 django.core.context_processors.tz 上下文处理器。

【问题讨论】:

  • 呈现该索引页的代码是什么?
  • 你使用的是什么版本的 Django?

标签: python django templates view messages


【解决方案1】:

【讨论】:

  • 我将它添加到 template_context_processors,但是当我这样做时,我说我还需要添加 'django.contrib.auth.context_processors.auth',然后我的页面 css 格式消失了.. 之后添加这两个,它仍然不起作用..
  • 文档说“django-admin.py startproject 创建的默认 settings.py 已经包含启用消息功能所需的所有设置”,但由于某种原因,我的没有包含 TEMPLATE_CONTEXT_PROCESSORS。所以要小心!
  • @Alveoli 您使用的是什么版本?这可能是您遇到的错误。
  • 我遇到了类似的问题,我的 TEMPLATE_CONTEXT_PROCESSORS 不包括 django.contrib.messages.context_processors.messages。添加它解决了这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 2014-01-29
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 2018-05-30
  • 2013-09-27
  • 1970-01-01
相关资源
最近更新 更多