如何不借助第三方应用将Django的Classes模型渲染为HTML表格
实现方案(完全不依赖第三方应用)
步骤1:编写视图逻辑(修改你的views.py文件)
首先在views.py中引入Classes模型,查询所有班级数据传递到模板:
# 顶部先导入模型和render方法 from .models import Classes from django.shortcuts import render def class_list(request): # 查询所有Classes表数据 class_list = Classes.objects.all() # 把数据传到你已创建的空白模板,注意替换成你自己的模板实际路径 return render(request, "你自己的模板路径.html", {"class_list": class_list})
如果你已经有对应视图函数,直接把查询数据、传递变量的逻辑加到原有函数里即可。
步骤2:在空白模板中编写表格渲染逻辑
直接在你提前准备的空白模板中插入以下HTML代码即可,原生语法不需要任何第三方插件:
<table border="1" cellpadding="8" cellspacing="0"> <!-- 表头,对应模型字段的展示名 --> <thead> <tr> <th>团队</th> <th>名称</th> <th>班级编码</th> <th>缺课情况</th> <th>补课情况</th> <th>备注</th> <th>学费支付状态</th> </tr> </thead> <tbody> <!-- 循环遍历后端传来的所有班级数据 --> {% for item in class_list %} <tr> <td>{{ item.Team }}</td> <td>{{ item.Name }}</td> <td>{{ item.ClassCode }}</td> <td>{{ item.MissingClass }}</td> <td>{{ item.MakeUpClass }}</td> <td>{{ item.Note }}</td> <!-- 可选:给支付状态加样式区分 --> <td {% if item.TuitionPaid == 'Paid' %}style="color:green"{% elif item.TuitionPaid == 'Pending' %}style="color:orange"{% endif %}> {{ item.TuitionPaid }} </td> </tr> {% empty %} <!-- 没有数据时的展示内容 --> <tr> <td colspan="7" align="center">暂无班级数据</td> </tr> {% endfor %} </tbody> </table>
验证
你已经完成了url配置,直接启动项目访问对应路由就能看到表格展示效果。如果样式不符合需求,可以自行给table标签加CSS调整样式即可。
内容的提问来源于stack exchange,提问作者dairy
相关产品推荐
相关产品推荐

