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

Django模板HTML表格仅显示表头无法展示模型属性如何解决?

问题根因
  • 核心问题:模板未对关联任务集合做循环遍历。你只编写了单组表格行标签,Django模板不会自动迭代所有关联任务,且你直接引用的task变量没有放在循环作用域内,无法获取到单个任务实例,自然不会渲染任务内容。
  • 附带语法问题:表格最后一个单元格的闭合标签书写错误,将</td>误写为</d>,会触发HTML渲染异常;另外表头的"Is compeleted"存在拼写错误,正确拼写为completed。
修复方法
  1. 确认视图传参:项目详情视图需要将当前项目实例传入模板上下文(常规项目详情页都会做这一步,变量名通常为project)。由于你在Task模型的Project外键上配置了related_name="tasks",可以直接通过project.tasks.all反向获取当前项目下的所有任务集合,不需要额外编写数据库查询逻辑。
  2. 修改模板代码:添加Django模板的for循环标签遍历任务集合,修正HTML标签错误与拼写问题,可选增加空状态提示、字段格式化优化展示效果。

修正后的完整模板代码如下:

<table>
     <tr>
         <th>Name</th>
         <th>Assignee</th>
         <th>Start Date</th>
         <th>Due Date</th>
         <th>Is completed</th>
     </tr> 
     {% for task in project.tasks.all %}
     <tr>
         <td>{{ task.name }}</td>
         <td>{{ task.assignee|default:"未分配" }}</td>
         <td>{{ task.start_date|date:"Y-m-d H:i" }}</td>
         <td>{{ task.due_date|date:"Y-m-d H:i" }}</td>
         <td>{{ task.is_completed|yesno:"已完成,未完成" }}</td>
    </tr>
    {% empty %}
    <tr>
        <td colspan="5">当前项目暂无关联任务</td>
    </tr>
    {% endfor %}
</table>

说明:代码中default、date、yesno是Django模板内置过滤器,用于优化字段展示效果,不属于必填逻辑,可根据自身需求保留或删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:33:07