点击通过slug关联的数据库拉取文章链接时出现异常
问题解决方案
你遇到的是slug关联的文章链接跳转404的问题,按以下步骤排查修复:
- 校验路由规则匹配逻辑
确保你的路由配置使用了对应的slug类型转换器,和参数类型完全匹配:
错误配置示例:path('article/<int:post_id>/', article_detail, name='article_detail')
正确配置示例:path('article/<slug:article_slug>/', article_detail, name='article_detail') - 核对视图层查询逻辑
确认视图函数中是用slug字段作为检索条件查询数据库,不要误用id等其他字段:# 正确写法 from django.shortcuts import get_object_or_404 def article_detail(request, article_slug): article = get_object_or_404(Article, slug=article_slug) return render(request, 'article_detail.html', {'article': article}) - 检查数据库slug字段存储值
确认对应文章的slug字段没有空值、重复值、特殊字符或空格,若使用自动生成slug的逻辑,要检查模型save方法或表单逻辑中是否正确生成了唯一的合法slug。 - 验证前端链接生成逻辑
模板中生成链接时使用框架提供的路由反向解析方法,不要硬编码路径:
错误写法:<a href="/article/{{ article.id }}">{{ article.title }}</a>
正确写法:<a href="{% url 'article_detail' article.slug %}">{{ article.title }}</a>
内容的提问来源于stack exchange,提问作者Stephen A Brooks
相关产品推荐
相关产品推荐

