Django开发博客点击Read More按钮报NoReverseMatch错误求助
你遇到的NoReverseMatch: Reverse for 'about' not found报错的核心原因是:你在模板中使用了{% url 'about' %}调用名为about的路由,但你当前的urls配置中没有定义name为about的路由规则。
具体解决方案
- 第一步:检查所有模板文件,尤其是你没贴出来的
post_detail.html文件,确认是否有调用{% url 'about' %}的代码。如果暂时不需要about页面,直接把这部分代码删掉,或者替换成静态链接即可。 - 第二步:修复你现有代码的已知问题:
- 应用urls.py中的文章详情路由缺少尾斜杠,修改为:
path('<slug:slug>/', views.PostDetail.as_view(), name= 'post_detail'), - base.html的导航栏存在ul标签未闭合的问题,找到导航栏对应的代码,补全第一个ul的闭合标签:
<ul id="nav-mobile" class="hide-on-med-and-down"> <li><a href="{% url 'home' %}">Home</a></li> <li><a href="badges.html">About </a></li> <li><a href="badges.html">Contact Us</a></li> </ul> <!-- 新增这行闭合标签 --> <ul id="nav-mobile" class="right hide-on-med-and-down">
- 应用urls.py中的文章详情路由缺少尾斜杠,修改为:
- 第三步(可选,如果你需要about页面):
- 在views.py中新增about视图:
def about(request): return render(request, 'Blog_App/about.html') - 在应用urls.py中新增对应路由:
path('about/', views.about, name='about'), - 将base.html中About按钮的链接修改为
{% url 'about' %}即可。
- 在views.py中新增about视图:
内容的提问来源于stack exchange,提问作者Musaddiq Habib
相关产品推荐
相关产品推荐

