无报错但Django List View无法正常工作,原因何在?
问题原因与解决方案
核心问题是URL路由的匹配顺序错了。
Django的URL路由是从上到下依次匹配的,如果你把feed_detail_view的路由规则写在了feed_list_view前面,再加上你的Detail视图给id参数设了默认值1,那么当你访问http://127.0.0.1:8000/feed/时,Django会优先匹配到Detail视图,自动用默认的id=1渲染详情页面,根本不会走到List视图的逻辑里。
修复步骤
- 打开项目的
urls.py文件,调整路由顺序,把列表视图的路由放在详情视图前面:
# urls.py 正确示例 from django.urls import path from .views import feed_list_view, feed_detail_view urlpatterns = [ path('feed/', feed_list_view, name='feed-list'), path('feed/<int:id>/', feed_detail_view, name='feed-detail'), ]
- 确保详情视图的路由明确带
<int:id>参数,这样只有访问/feed/数字/这类路径时才会触发详情逻辑,而/feed/会匹配列表视图。
这样调整后,访问/feed/就能正常显示3条帖子的列表了。
内容的提问来源于stack exchange,提问作者seraphis
相关产品推荐
相关产品推荐

