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

Django项目navbar登录链接失效但下拉菜单链接正常如何解决

问题根因

你给Login链接绑定了Bootstrap的data-bs-toggle="dropdown"属性,该属性会默认拦截a标签的原生跳转行为,触发下拉菜单展开,这就是你点击Login无法跳转、但下拉菜单内链接访问正常的核心原因。

另外你现有代码里下拉触发按钮的id="navbarDropdown"和下拉菜单的aria-labelledby="navbarDropdownMenuLink"值不匹配,保留下拉功能的话建议把两个值改成一致,避免出现适配问题。

对应解决办法

方案1:不需要保留下拉菜单(仅保留Login跳转功能)

直接删除a标签上和下拉相关的属性,同时移除后续的下拉菜单DOM结构即可,修改后的参考代码如下:

<li class="nav-item">
      <a class="nav-link" href="{% url '替换为你的login路由名' %}">
        Login
      </a>
</li>

提示:建议和Register链接一样用Django的url模板标签写路径,不要硬编码本地地址,后续部署或者修改路由时不用重复改模板

方案2:需要保留下拉菜单,同时支持点击Login跳转

可以将跳转链接和下拉触发按钮拆分,做成两个独立元素:

<li class="nav-item dropdown d-flex align-items-center">
      <a class="nav-link" href="{% url '替换为你的login路由名' %}">
        Login
      </a>
      <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"></a>
      <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
        <li><a class="dropdown-item" href="{% url '替换为你的logout路由名' %}">Logout</a></li>
        <li><a class="dropdown-item" href="{% url 'simple_investing:register' %}">Register</a></li>                    
      </ul>
</li>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:48:00