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

Django传递productid实现商品详情展示时触发noReverseMatch错误

触发NoReverseMatch错误的问题定位

结合你提供的代码片段,有两处直接违反Python和Django语法规则的错误,会直接导致路由加载失败、反向匹配异常:

  • URL路径字符串引号未正确闭合,参数解析错位
    你写的路由配置中,路径开头的单引号从product/ 前方启动,直到name= 后方才出现下一个单引号,直接把product/<int:id>/, views.product-details, name= 整段内容都当作了路由路径字符串,后续的product-details') 属于语法无效内容。这种情况下Django根本无法正常注册名为product-details的路由条目,反向解析时自然会抛出NoReverseMatch错误。
  • 视图引用写法不符合Python语法要求
    你对视图的引用写为views.product-details,Python语法不允许函数名、模块属性名中使用连字符-,解释器会将这段代码解析为“取views下的product属性值减去details变量”,属于直接的语法错误,会阻断整个URL配置的加载流程。

修正后的参考写法

可正常运行的路由配置为:
path('product/<int:id>/', views.product_details, name='product-details')
调整完成后,模板中{% url 'product-details' product.id %} 的位置传参写法,是可以正常按路由参数顺序匹配,生成指向对应商品详情页、传递商品id参数的URL的。

补充说明:如果你的项目为各应用配置了命名空间,模板内调用反向路由时需要带上命名空间前缀(如{% url 'your_app_namespace:product-details' product.id %}),否则也会触发同类反向匹配错误。但从你当前给出的代码片段来看,前面两处语法错误已经足够触发页面报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 21:15:08