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

Django通用DetailView无法显示文章数据,请求技术支持

问题分析与解决

你的问题核心是Django DetailView的上下文变量名称不匹配。Django的DetailView默认会将查询到的对象以模型类名的小写形式(也就是article)传递给模板,但你在article_detail_view.html里用的是post,导致模板无法获取到数据。

有两种解决方式,任选其一即可:

方式一:修改模板变量名

直接把article_detail_view.html里的post替换为article:

<h2>Article Detail View</h2>

<h2>{{article.title}} By {{ article.author }}</h2></br>
<p>{{article.body}}</p>

方式二:在视图中指定上下文变量名

在ArticleDetailView类里添加context_object_name属性,明确指定模板使用的变量名:

class ArticleDetailView(DetailView):
    model = Article
    template_name = 'article_detail_view.html'
    context_object_name = 'post'  # 新增该行代码

额外检查项:

  • 确认数据库中已存在对应的Article数据
  • 点击首页文章链接时,URL格式是否正确(例如article/1这类带有效pk的路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:10:29