LOGOUT_REDIRECT_URL 未重定向到所需页面

问题描述 投票:0回答:1

我是 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 %}       

设置.py

LOGOUT_REDIRECT_URL = "home"
LOGIN_REDIRECT_URL = "home"

我知道默认情况下,当我单击 href 链接时,我应该重定向到 /accounts/logout,但我将 LOGOUT_REDIRECT_URL 设置为 home。另一方面,LOGIN_REDIRECT_URL = "home" 效果很好 我读了很多关于这个问题的主题,但没有一个解决方案对我有帮助

我尝试手动设置路径。从某种意义上说,它有效,我停留在同一页面,但我没有从我的帐户注销

path('', auth_views.LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),

django django-templates django-urls
1个回答
0
投票

我们必须使用同一本书,@user23355404。

Django 5 发生了变化,注销技术不再有效。您需要使用表格并进行“发布”。在此错误报告

中确定了更改

Will Vincent(书籍作者)也在这个网站解释了这一变化以及如何修复它。

您需要将注销流程更改为:

<form action="{% URL 'logout' %}" method="post>
    {% csrf_token %}
    <button type="submit">Log Out</button
</form>

您现在将看到“注销”按钮而不是链接。我已经测试过这个并且它对我有用。我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.