5

ユーザーがアプリケーションからサインアウトしたときにメッセージを表示するために、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コンテキストプロセッサが追加されました。

4

1 に答える 1

13

コンテキストプロセッサとミドルウェアを追加しましたか?

于 2012-08-06T19:10:32.570 に答える