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

Django模型数据未在模板中显示的问题排查求助

解决Django ListView页面无内容但标签存在的问题

嘿,我瞅了下你的代码,问题其实出在模板里的两个小细节上——这就是为啥页面看不到内容,但审查元素能看到h2标签的原因:标签确实生成了,但里面的字段内容没正确渲染出来。

问题分析与修复步骤:

  1. 循环变量与上下文变量重名冲突
    你在MyDateListView里把上下文变量名设成了mydate,然后模板里又写了{% for mydate in mydate %}。这就相当于在循环块里,把原本指向整个数据列表的mydate,覆盖成了当前迭代的单个条目对象,逻辑上会出现混乱,也容易导致字段引用错误。

  2. 错误引用模型类而非实例对象
    你在h2标签里写的是{{ MyDate.hebrew_date }},这里的MyDate是模型的类名,不是循环里的单个数据实例,自然拿不到具体的字段值。应该用循环变量来引用每个条目的字段。


修改后的模板代码:

{% extends 'luach/base.html' %}
{% block content %}
<div class="jumbotron">
{% for date_item in mydate %}
<h2>Hi {{ date_item.hebrew_date }}</h2>
{% empty %}
<h2>Sorry, no dates in this list.</h2>
{% endfor %}
</div>
{% endblock %}

可选优化:提升代码可读性

为了彻底避免变量名冲突的问题,你可以把ListView的上下文变量名改成更清晰的复数形式,比如mydate_list:

修改views.py里的MyDateListView:

class MyDateListView(ListView):
    model = MyDate
    context_object_name = 'mydate_list'

对应的模板循环部分改成:

{% for date_item in mydate_list %}
<h2>Hi {{ date_item.hebrew_date }}</h2>
{% endfor %}

最后别忘了确认你的数据库里已经添加了MyDate的条目,如果数据库是空的,页面会显示empty块里的提示内容哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:42:43