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

Django添加用户帖子列表后,帖子详情页触发404错误求助

Django留言板帖子详情404错误修复

问题原因

你的URL路由顺序搞反了。Django会按urlpatterns里的从上到下顺序匹配路由,当你访问帖子详情页(比如test-post/)时,这个路径先被<str:username>/的规则接住——Django把test-post当成用户名去查询User表,自然找不到对应数据,直接抛出404错误。

解决办法

把帖子详情的路由(boards_post)放到用户帖子列表路由(user_posts)前面:

urlpatterns = [
    # 其他路由...
    path('<slug:slug>/', views.FullPost.as_view(), name='boards_post'),
    path('<str:username>/', views.UserPostList.as_view(), name='user_posts'),
    # 其他路由...
]

原理说明

<str:username>的匹配范围极广,任何字符串格式的路径都会被它匹配;而<slug:slug>是专门为URL友好的短字符串(比如帖子的slug)设计的匹配规则。把更具体的路由放在前面,Django会优先尝试匹配帖子详情,只有当路径不符合slug规则(或找不到对应帖子)时,才会去匹配用户帖子列表的路由,从根本上避免了路由冲突。

内容的提问来源于stack exchange,提问作者Mark Hewitt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:10:28