You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 2.0出现NoReverseMatch错误:找不到'list'视图或路由名称

解决Django 2.0中的NoReverseMatch错误:Reverse for 'list' not found

这个错误逻辑很清晰——你的模板里在尝试调用website:list这个URL别名,但你的website应用的URL配置里根本没定义这个别名,所以Django找不到对应的视图路径,直接抛出了这个报错。下面是一步步的解决办法:

第一步:给website应用添加带name='list'的URL模式

打开你的website/urls.py,在urlpatterns里添加一个对应列表页面的URL规则,核心是要加上name='list'参数,这样Django才能把website:list和这个路径关联起来。示例代码如下:

# website/urls.py
app_name = 'website'
urlpatterns = [
    re_path(r'^about/$', TemplateView.as_view(template_name='...'), name='about'),
    # 添加这一行,替换成你实际的视图函数/类和路径规则
    re_path(r'^posts/$', views.post_list, name='list'),
    # 如果用类视图的话,写法类似:
    # re_path(r'^posts/$', PostListView.as_view(), name='list'),
]

这里的name='list'是关键,必须和模板里{% url 'website:list' %}中的list完全匹配。

第二步:确认命名空间配置正确

看你的根urls.py已经正确包含了website.urls,而且website/urls.py也设置了app_name='website',所以模板里website:list的命名空间写法是没问题的,这一步无需修改,只要确保第一步的URL别名添加完成即可。

第三步:重启服务器测试

添加完URL规则后,重启你的Django开发服务器,刷新页面后,这个NoReverseMatch错误应该就会消失了。

额外提醒

如果你的列表视图需要传递参数(比如分页页码),那模板里的URL也要对应传递参数,示例写法:

{% url 'website:list' page=2 %}

如果不需要参数,那你原来的模板写法就完全没问题。

内容的提问来源于stack exchange,提问作者David Foie Gras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:29:18