Django 2 报错NoReverseMatch

新手上路,做个笔记吧┭┮﹏┭┮

异常提示:

NoReverseMatch at /xxx/ Reverse for ‘xxx’ not found. ‘xxx’ is not a valid view function or pattern name

一般情况:都是与命名空间有关。

  • 这是因为自己指定了app_name,app_name=‘stu’
  • 在html界面中同样要指定,即<a href={% url ‘stu:index’%}>
  • 在views.py中也要指定,redirect(HttpResponseRedirect)

1、检查HTML文件中有用到逆向解析地址的地方,有没有出错

一般格式为:{% url ‘app_name:name’ %}
如下是错误的写法

<a href="{% url 'index' %}">跳转</a>  #这是错误写法!

应更改为:

# 在子urls.py 添加 app_name = 'stu
<a href="{% url 'stu:index' %}">跳转</a>

遇到这个报错问题,绝大多数人通过第一种方法就能解决,但是我遇到的不是这个问题,在百度了许久以后,才找到与我出现问题相似的解决办法:
↓↓↓↓↓↓↓
2、在views.py中的:

def index_view3(request):
    # 重定向
    year = 2020
    # redirect('stu:arch-summary',year)
    return HttpResponseRedirect(reverse('stu:arch-summary', args=(year,)))

’stu:arch-summary’

中的 应用命名空间 stu 一定不能少了!我就是因为这个问题找了很久的BUG,难受┭┮﹏┭┮

点击查看更多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值