私は最近、私のDjangoアプリケーションのログアウト機能が壊れていると感じました。私はそれが過去に働いたと信じていますが、なぜ今働いていないのか分かりません。私のセットアップですログアウト後にDjangoセッションが削除されない
:
のindex.html:
...
{% if request.user.is_authenticated %}
<a style="position: absolute; top: 0; left: 0;" href="{% url 'auth_logout' %}">Logout</a>
{% else %}
<a style="position: absolute; top: 0; left: 0;" href="{% url 'auth_login' %}">Login</a>
{% endif %}
...
urls.py:
...
from django.contrib.auth import views as auth_views
...
urlpatterns = [
...,
url(r'^accounts/logout/$', auth_views.logout, name='auth_logout'),
url(r'^accounts/login/$', auth_views.login, name='auth_login'),
...
]
テンプレート:
login.htmlと:
{% extends 'simple_logo_base.html' %}
{% block content %}
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<h2>Login</h2>
{% if next %}
<form action="/accounts/login/?next={{next}}" method="post" >
{%else%}
<form action="/accounts/login/" method="post" >
{% endif %}
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</div>
<div class="col-md-3"></div>
</div>
{% endblock %}
のlogout.html: "simple_logo_base.htmlは" のロゴを含むdiv要素を持つ単純なHTML構造である
{% extends 'simple_logo_base.html' %}
{% block content %}
<h2 class="text-center">Logged out</h2>
{% endblock %}
。
問題: ログインは完全に正常に動作します。制限付きindex.htmlページにアクセスしようとすると、ログインページにリダイレクトされ、ログインして制限付きページにアクセスできます。
「ログアウト」ボタンをクリックすると(上記参照)、私はlogout.htmlページにもリダイレクトされますが、index.htmlに戻ってまだログインできます
したがって私はデータベースの "django_sessions"テーブルを見て、セッションが決して削除されないことに気付きました。手動で削除すると、index.htmlにアクセスするときに再びログインページにリダイレクトされます。
私は間違っていますか?何が問題なの?
私は最近、Django 1.10にアップグレードしました。また、Cachingフレームワークをプロジェクトに追加しました。これらの変更のいずれかに関連していますか?