Django模板页面无法显示Model模型对象属性问题求助
问题根因排查
1. 最高概率原因:模板标签语法错误
你编写的Django循环标签{ % for i in data % }、{ % endfor % }中,花括号和百分号之间多了多余空格,Django无法识别带空格的模板标签,会将这部分内容直接当成普通文本原样输出到页面源码中,循环逻辑完全没有执行,自然无法渲染对象属性值。
你可以直接观察到页面源码里保留了完整的{% for %}标签代码,就是这个问题的直接证明。
2. 其他可选排查点
如果修改标签空格后仍无内容输出,可以按以下顺序排查:
- 确认模型
ModelObj确实存在name、time、value三个字段,字段名拼写完全一致(Django模板变量区分大小写) - 确认QuerySet内的对象对应字段有实际值,可在视图中新增打印逻辑验证:
def view_func(request): ... data = ModelObj.objects.all() # 逐个打印字段确认值存在 for item in data: print(item.name, item.time, item.value) return render(request, "templates/app/page.html", {'data': data})
- 确认你修改的模板文件就是视图中指定的渲染模板,没有因路径配置错误加载了其他旧模板文件
修复后模板代码示例
<thead> ... </thead> <tbody> {% for i in data %} <tr> <td>{{ i.name }}</td> <td>{{ i.time }}</td> <td>{{ i.value }}</td> </tr> {% endfor %} </tbody>
内容的提问来源于stack exchange,提问作者timo_werner45
相关产品推荐
相关产品推荐

