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

Django URL锚点#被转义为%23无法定位页面指定区段如何解决?

Django 模板锚点跳转异常解决方法

问题根因

  1. 你在urls.py中定义的路由名称为chg-profil,模板的{% url %}标签内传入'chg-profil/#formt'属于错误的路由名称,本身无法匹配到已注册的路由规则。
  2. {% url %}标签内部所有内容都会被视为路由的组成部分自动做URL转义,锚点符号#会被转义为%23,导致浏览器无法识别为页内区段定位标识。

调整方案

无需修改urls.py配置,仅调整模板中链接的写法,将锚点部分放在{% url %}标签外部拼接即可:

错误写法

<a class="nav-link" href="{%url 'chg-profil/#formt'%}">

正确写法

<a class="nav-link" href="{% url 'chg-profil' %}#formt">

修改后生成的URL为www.misite.com/chg-profil/#formt,可正常定位到id="formt"的对应区段。

扩展说明

如果你的路由需要传递参数,仅需将参数放在{% url %}标签内部处理,锚点依然放在标签外部即可,示例:

<!-- 带参数路由的锚点写法示例 -->
<a href="{% url 'user-profile' user_id=request.user.id %}#edit-area">跳转至个人资料编辑区</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:51:02