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

Django中@login_required装饰器不生效,未登录也能访问首页如何解决?

问题原因排查方向
  • 你访问的实际是根路径/对应的welcome视图
    你代码里加了@login_required装饰器的是路径/home/对应的home视图,如果你说的“首页”是站点根路径/,该路径绑定的welcome视图没有加登录校验装饰器,自然不需要登录就可以访问。请确认你测试的是/home/路径。
  • 装饰器导入错误
    检查login_required的导入语句是否正确,正确导入路径为from django.contrib.auth.decorators import login_required,如果导入了自定义或第三方的同名装饰器,会导致校验逻辑不生效。
  • 路径配置不匹配
    你settings.py中配置的LOGIN_URL = '/login'缺少末尾斜杠,和account应用urls.py中定义的login/路径不一致,虽然Django默认开启APPEND_SLASH会自动补全,但部分场景下会导致装饰器校验逻辑异常,建议将LOGIN_URL修改为'/login/'或者直接使用命名路由配置LOGIN_URL = 'login'。
  • 测试环境已处于登录状态
    如果你之前在当前浏览器登录过账号,本地会留存登录态cookie,会被判定为已登录状态,请切换无痕浏览窗口重新测试未登录状态下的访问逻辑。
  • 根路由配置错误
    检查项目根目录的urls.py中,对home应用的路由绑定是否正确,有没有出现路径和视图函数绑定错配的情况,导致你访问的路径实际没有绑定到加了装饰器的home视图上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:24:01