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

Django自定义登录URL问题:修改路径后出现404错误求助

解决Django登录URL修改后出现404的问题

嘿,我完全懂你遇到的这个坑!当你把登录视图的URL从/login/改成/restaurant/login/后,访问需要认证的页面就出404,核心原因是Django的认证系统还不知道你改了登录路径。

默认情况下,Django会把/accounts/login/作为登录跳转的默认地址,之前用/login/能正常工作,是因为刚好匹配到了你当时的URL规则;但改成/restaurant/login/后,系统还是按旧逻辑去跳转,自然找不到对应的页面了。

具体解决步骤:

  • 在settings.py里配置LOGIN_URL:
    最灵活的方式是用URL名称来配置,后续不管怎么改URL路径都不用再调整这个设置。在你的settings.py中添加一行:

    LOGIN_URL = 'login'
    

    这里的'login'就是你给LoginView设置的name='login',Django会自动反向解析出对应的/restaurant/login/路径。

    如果你想直接写完整路径也可以,但推荐用名称,维护起来更省心:

    LOGIN_URL = '/restaurant/login/'
    
  • 确认URL名称唯一:
    确保项目里没有其他URL模式也用了name='login',避免反向解析时出现冲突。

额外小提醒:

如果你是用LoginRequiredMixin来保护类视图,记得要让你的类正确继承这个Mixin,比如:

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import TemplateView

class MyProtectedView(LoginRequiredMixin, TemplateView):
    template_name = 'protected_page.html'

这样修改后,再访问需要认证的页面,就会正确跳转到你设置的/restaurant/login/登录页面,不会再出现404错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:28:52