You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django应用登出时陷入循环,返回HTTP 302状态码问题求助

解决Django登出时的重定向循环问题

看起来你遇到的是Django登出操作时的无限重定向循环问题,控制台反复出现302状态码日志,说明每次访问/account/logged_out/后都被重新定向回这个页面,形成了死循环。

问题原因分析

这种情况核心原因是登出后没有指定正确的跳转目标页面:

  • Django的LogoutView默认逻辑是:如果既没在URL配置里指定next_page参数,也没在settings.py中设置LOGOUT_REDIRECT_URL,就会把用户重定向到当前请求的页面(也就是/account/logged_out/),直接触发循环。
  • 你目前只配置了登录后的跳转地址LOGIN_REDIRECT_URL,但遗漏了登出后的跳转目标配置。

两种可行解决方案

方案1:全局配置登出跳转地址(修改settings.py)

直接在你的settings.py末尾添加登出后的跳转目标,指向一个不需要登录权限的页面(比如首页、登出成功提示页):

from django.urls import reverse_lazy
LOGIN_REDIRECT_URL = reverse_lazy('account:dashboard')
# 添加下面这行配置,替换成你实际的URL名称
LOGOUT_REDIRECT_URL = reverse_lazy('home')

方案2:在URL配置中指定跳转目标(修改urls.py)

如果你不想修改全局配置,可以在配置登出URL时,直接给LogoutView传递next_page参数:

from django.contrib.auth.views import LogoutView

urlpatterns = [
    # 其他URL配置...
    path('account/logged_out/', LogoutView.as_view(next_page='home'), name='logged_out'),
]

额外检查点

别忘了确认你没有给LogoutView添加login_required装饰器——如果加了这个装饰器,用户登出后访问登出页面会被强制重定向到登录页,也可能引发异常的跳转逻辑。

内容的提问来源于stack exchange,提问作者ralfillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:50:56