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

Django 4.0.6:点击链接后index_detail.html无法显示T1字段内容求助

Django详情页无法显示模型字段的问题排查与解决

核心问题原因

  1. 上下文变量不匹配:V2这个DetailView里设置了context_object_name="con2",但详情页模板index_detail.html中却用{{T1.name}}调用字段,模板无法识别T1这个未传入的上下文变量。
  2. 模板语法错误:index_detail.html里的<h4>{{T1.name}}</h4>]多了一个多余的闭合方括号],会干扰模板正常渲染逻辑。

修复方案(二选一即可)

方案一:修改模板变量名匹配上下文

直接把index_detail.html中的T1替换为指定的con2,同时删除多余的方括号:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
<body>

<h1>detail view page</h1>
{% block context %}
<h4>{{con2.name}}</h4>
<h4>{{con2.address}}</h4>

{% endblock context %}
</body>
</html>

方案二:调整DetailView的上下文变量名(更符合Django默认习惯)

修改views.py中的V2类,可选择删除context_object_name配置(默认会以小写模型名t1作为上下文变量),或者直接指定为t1:

class V2(DetailView):
    model=T1
    # 可选:删除此行,使用默认的`t1`作为上下文变量名
    # context_object_name="con2"
    context_object_name="t1"  # 改为小写模型名更直观
    template_name="index_detail.html"

对应修改index_detail.html中的变量为t1,并删除多余方括号:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
<body>

<h1>detail view page</h1>
{% block context %}
<h4>{{t1.name}}</h4>
<h4>{{t1.address}}</h4>

{% endblock context %}
</body>
</html>

额外验证项

  • 确认URL配置path("index/<int:pk>",V2.as_view(),name="index_detail")中的pk参数能正常传递,确保DetailView可以通过主键获取对应实例。
  • 检查数据库中对应pk的T1实例是否存在有效数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:22