Django模板添加按钮链接报当前路径不匹配错误如何解决
问题根因
模板中的Django URL反向解析标签语法错误,Django模板标签默认使用{% %}包裹,你错误写成了{$ %},导致模板渲染时没有把{$ url 'cart' %}这类内容解析成正确的路由地址,而是直接把这段字符串当作href的值输出,点击时会请求不存在的路径,触发路由匹配错误。
修复步骤
- 修改main.html里所有a标签的href属性,把
{$替换成{%,同时可以修正3个链接文本全部为Store的问题,修正后代码如下:
<a class="nav-link" href="{% url 'cart' %}">Cart <span class="sr-only">(current)</span></a> <a class="nav-link" href="{% url 'store' %}">Store <span class="sr-only">(current)</span></a> <a class="nav-link" href="{% url 'checkout' %}">Checkout <span class="sr-only">(current)</span></a>
- 重启Django开发服务,刷新页面后点击链接即可正常跳转。
可选校验排查方法
如果修改后仍有报错,可按以下顺序核对:
- 检查store应用的urls.py语法是否正确,确认三个路由的
name属性和模板中url标签内的名称完全一致,区分大小写 - 右键页面查看渲染后的HTML源码,确认a标签的href已经被解析成
/cart/、/、/checkout/这类正确路径,而非原始的模板标签代码 - 确认项目根路由的include配置正确,没有给store应用的路由添加额外前缀
内容的提问来源于stack exchange,提问作者Francisco Azocar
相关产品推荐
相关产品推荐

