LOGOUT_REDIRECT_URL не перенаправляет на нужную страницу
Я новичок в Django и столкнулся с проблемой: я хочу выйти из учетной записи одним щелчком мыши, используя 'django.contrib.auth.urls'. Вот мой 'urls.py'
path("accounts/", include('django.contrib.auth.urls')),
home.html
{% if user.is_authenticated %}
<p>Hi, {{ user.username }}</p>
<p><a href="{% url 'logout' %}">Log out</a></p>
{% else %}
<p>You are not logged in</p>
<p><a href="{% url 'login' %}">Log In</a></p>
{% endif %}
settings.py
LOGOUT_REDIRECT_URL = "home"
LOGIN_REDIRECT_URL = "home"
Я знаю, что по умолчанию я должен быть перенаправлен на /accounts/logout, когда я нажимаю на ссылку href, но я установил LOGOUT_REDIRECT_URL на home. LOGIN_REDIRECT_URL = "home", с другой стороны, работает отлично. Я прочитал много тем по этой проблеме, но ни одно из решений мне не помогло
Я попробовал установить путь вручную. Это сработало в том смысле, что я остался на той же странице, но я не вышел из своей учетной записи
path('', auth_views.LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),
Мы, должно быть, используем одну и ту же книгу, @user23355404.
В Django 5 произошли изменения, и эта техника выхода из системы больше не работает. Вам нужно использовать форму и сделать "post". Изменение было указано в этом отчете об ошибке
Уилл Винсент (автор книги) также объясняет это изменение и как его исправить на этом сайте.
Вам необходимо изменить процесс выхода из системы на:
<form action="{% url 'logout' %}" method="post>
{% csrf_token %}
<button type="submit">Log Out</button
</form>
Теперь вы увидите кнопку "Выход", а не ссылку. Я проверил это, и у меня все работает. Надеюсь, это поможет.