新手上路,做个笔记吧┭┮﹏┭┮
异常提示:
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,难受┭┮﹏┭┮