Django-NoReverseMatch

版本:Django2.1 python3.6 CentOS6.8

错误提示:
Reverse for ‘list’ with arguments ‘(’’, 1)’ not found. 1 pattern(s) tried: [‘list/(?P<type_id>\d+)/(?P\d+)$’]
在这里插入图片描述

在这里插入图片描述
首先,看到这个错误,有点意外,这是反向解析错误,但看到地址栏那里已经是127.0.0.1:8000/goods/8,已经是正确跳转了,而且在这之前,我测试过这个view是没问题的。

这是我的URL配置:
在这里插入图片描述

可以肯定的是,第二项re_path配置是没问题的,因为在写listView之前就测试过了,就是写了listView之后再测试才出的问题,而且反向解析也是list的出错!但奇怪的是,我匹配listView()的url地址,是可以正常显示!

这是listView页面:
在这里插入图片描述

这说明listView的re_path也是正确的!

那么问题来了,错误提示是’list’的反向解析没找到,
在这里插入图片描述

而下面的提示又是指向detail.html
在这里插入图片描述

我查看了detail.html的代码,就没有找到关于list的反向解析语句!
使用反向解析的也就下面这句
在这里插入图片描述

好!上面是我遇到问题的过程!下面是解决问题的关键!!!
在这里插入图片描述

detail.html页面是继承base_detail_list.html的,问题就是出在这里!!我查看base_detail_list.html的语句,就是有下面这一句代码!
在这里插入图片描述

就是这句list反向解析错误!!把这个页面所有的这一句代码改为正向解析就可以了!
改为:href="/list/{{type.id}}/1"
在这里插入图片描述

以上方法是可以解决!但是博主我后来才发现,其实用反向解析也是可以的,是博主我自己粗心了!
我细心分析了一下错误提示,‘(‘’,1)’,很明显是第一个参数没有传入,我再查看了base_detail_list.html的程序,发现问题了
在这里插入图片描述
在下面发现了这个程序,这里传入的参数是type.id,然后在这里我并没有引入type参数,只是在上面的那段程序引入了,把type引入就正常了!!!
在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值