Django访问/course/报NoReverseMatch错误:未找到course_detail路由
报错原因
你在Courses模型的get_absolute_url方法中调用了命名空间为courses、名称为course_detail的路由,但你在courses应用的路由配置里仅注册了course_list路由,没有添加course_detail对应的路由条目,Django找不到对应路由匹配规则才抛出该错误。
解决步骤
- 第一步:修改courses应用的
urls.py文件,补充course_detail的路由配置
app_name = "courses" urlpatterns = [ path('', views.course_list, name='course_list'), # 新增course_detail路由条目 path('<int:id>/<slug:slug>/', views.course_detail, name='course_detail'), ]
路由中的参数顺序、转换器类型需要和course_detail视图函数的入参保持一致,路由的name属性必须和reverse方法中调用的路由名完全匹配。
- 第二步:确认项目根路由配置中已经正确挂载了courses应用的路由,根
urls.py中需要存在如下配置:
path('course/', include('courses.urls'))
- 第三步:重启Django开发服务,再次访问
/course/路径即可恢复正常。
内容的提问来源于stack exchange,提问作者Moses Eyime Akoji
相关产品推荐
相关产品推荐

