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

使用django-shopping-cart 0.1遇Reverse for 'cart_add'未找到错误求助

问题解决:Reverse for 'cart_add' not found

核心原因:未使用URL命名空间

你的urls.py中设置了app_name='shop',这意味着该应用下的所有URL名称都隶属于shop命名空间。模板中直接使用{% url 'cart_add' product.id %}会导致Django无法定位到对应的URL配置,因为它不知道该去哪个应用的路由中查找这个名称。

修复步骤:

  1. 修正模板中的URL反向解析
    将home.html里的链接修改为带命名空间的格式:
<a href="{% url 'shop:cart_add' product.id %}">Add</a>
  1. 规范视图中的重定向写法(可选但推荐)
    你的视图中使用redirect("home")和redirect("cart_detail")同样存在命名空间缺失问题,建议同步修正为:
# cart_add视图中的重定向
return redirect("shop:home")

# 其他视图中的重定向
return redirect("shop:cart_detail")

额外发现的拼写错误

模板中循环变量是product,但你写的是{{produit.name}}和{{produit.price}}(把product拼成了produit),这会导致页面无法正确渲染产品信息,需要修正为:

<p>{{product.name}}<br>
   {{product.price}}
   <a href="{% url 'shop:cart_add' product.id %}">Add</a>
</p>

验证修复

修改完成后重启Django开发服务器,点击Add链接即可正常触发cart_add视图,反向解析错误将不再出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:20:27