Django使用{% url %}模板标签报Reverse匹配错误如何解决?
错误原因
- 主项目urls.py配置冗余:重复多次引入
pages.urls,且为每个引入单独设置命名空间,打乱了Django的URL反向解析逻辑 - 未携带应用命名空间:pages应用的urls.py中配置了
app_name = 'pages',属于带命名空间的URL,模板中直接写{% url 'experience' %}没有加命名空间前缀,Django无法匹配到对应路由 - 视图代码笔误:你提供的views.py代码第一行
rom django.shortcuts import ...开头少了字母f,需修正为from
最简解决方法
- 替换主项目
firt_website/urls.py的全部代码,删除冗余的include配置:
"""firt_website URL Configuration """ from django.contrib import admin from django.urls import path, include urlpatterns = [ path('', include('pages.urls')), ]
- 修改导航栏模板中的跳转链接,所有
url模板标签都加上pages:前缀,对应替换规则如下:
- 首页跳转:
{% url 'pages:homepage' %} - 经验页跳转:
{% url 'pages:experience' %} - 教育页跳转:
{% url 'pages:education' %} - 作品集页跳转:
{% url 'pages:portfolio' %}
- 把模板中原先写死的
Acceuil.html、Education.html这类静态路径全部替换为上面的动态跳转代码即可正常完成页面跳转。
内容的提问来源于stack exchange,提问作者yedx_1_10
相关产品推荐
相关产品推荐

