Недавно я обнаружил, что функция выхода из моего приложения 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:
{% extends 'simple_logo_base.html' %}
{% block content %}
<h2 class="text-center">Logged out</h2>
{% endblock %}
Где "simple_logo_base.html" это просто обычный HTML структура с DIV, содержащий логотип.
Проблема: Врезка работает отлично. Если я попытаюсь открыть ограниченную страницу index.html, я перенаправлен на страницу входа в систему, могу войти в систему и получить доступ к странице с ограничениями.
Как только я вошел в систему, и я нажимаю кнопку «Выход» (см. Выше), я также перенаправляется на страницу logout.html, однако я все еще могу вернуться к index.html, и я все еще записываю in
Поэтому я посмотрел таблицу «django_sessions» в базе данных и заметил, что сеанс никогда не удаляется. Если я вручную удалю его, я снова перенаправляюсь на страницу входа в систему при обращении к index.html.
Что я делаю неправильно? В чем может быть проблема?
Недавно я обновился до Django 1.10, а также добавил рамки кэширования в свой проект. Может ли это быть связано с любым из этих изменений?