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>

Теперь вы увидите кнопку "Выход", а не ссылку. Я проверил это, и у меня все работает. Надеюсь, это поможет.

Вернуться на верх