models.py 对应的配置

class Classes(models.Model):
caption = models.CharField(max_length=32) class Teacher(models.Model):
name = models.CharField(max_length=32)
cls = models.ManyToManyField('Classes')

修改 views.py

@auth
def handle_teacher(request):
current_user = request.session.get('username') # teacher_list = models.Teacher.objects.all()
# for obj in teacher_list:
# print(obj.id, obj.name, obj.cls.all()) # 分页,获取第一页5位老师对应的记录
teacher_list = models.Teacher.objects.filter(id__in=models.Teacher.objects.all()[0:5]).values('id', 'name', 'cls__id', 'cls__caption')
result = {}
for t in teacher_list:
# 判断是否已在 result 中
if t['id'] in result:
# 判断 cls__id 的值是否为空
if t['cls__id']:
result[t['id']]['cls_list'].append({'id': t['cls__id'], 'caption': t['cls__caption']})
else:
# cls__id 有值
if t['cls__id']:
temp = [{'id': t['cls__id'], 'caption': t['cls__caption']},]
else:
# cls__id 没值
temp = []
# 给 result 字典添加值
result[t['id']] = {
'nid': t['id'],
'name': t['name'],
'cls_list': temp
} return render(request, 'teacher.html', {'username': current_user, 'teacher_list': result})

修改 teacher.html

{% extends "layout.html" %}

{% block css %}

        .tag{
display: inline-block;
padding: 5px;
border: 1px solid red;
background-color: lightpink;
cursor: pointer;
} {% endblock %} {% block content %} <h1>老师列表</h1>
<table border="1">
<thead></thead>
<tbody>
{% for dic in teacher_list.values %}
<tr>
<td>{{ dic.nid }}</td>
<td>{{ dic.name }}</td>
<td>
{% for c in dic.cls_list %}
<span class="tag" nid="{{ c.id }}">{{ c.caption }}</span>
{% endfor %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %} {% block js %}
<script>
$(function () {
$('#menu_teacher').addClass('active'); }) </script>
{% endblock %}

最新文章

  1. win10 Vmware12装mac os X10.11虚拟机教程
  2. MSDB数据库置疑的解决方法
  3. ios NSNotificationCenter 收到通知后的执行线程
  4. JStorm集群的部署
  5. awk统计nginx日志访问前一百的ip
  6. R语言实战读书笔记(二)创建数据集
  7. iOS开发——UI篇Swift篇&amp;UIWebView
  8. mac terminal终端ls命令参数详解
  9. C# 二进制,十进制,十六进制
  10. SCM白色幼儿系列(十二) Proteus仿真软件简介
  11. POI获取Excel列数和行数的方法
  12. ThinkPHP5.0学习1 — 命名空间
  13. OVS故障处理一例
  14. 一个Flask运行分析
  15. Dynamics 365中的批量删除作业执行频率可以高于每天一次吗?
  16. JavaWeb - Apache与Tomcat有什么关系和区别
  17. Qt+Qgis二次开发:在状态条显示当前鼠标坐标
  18. Linux基础命令---显示主机名hostname
  19. tslib移植笔记(1)【转】
  20. shell 脚本,将/etc/目录下所有的软链接文件输出

热门文章

  1. 详解YUV数据格式
  2. 关于linux shell的一点知识
  3. 2018年蓝桥杯B组C/C++决赛题解
  4. /usr/lib/python2.7/subprocess.py&quot;, line 1239, in _execute_child
  5. Pwn-pwn-200
  6. vue使用--saas的引入与使用
  7. Django-compressor压缩静态文件,逆天!!!!!
  8. MSM8909中LK阶段LCM屏适配与显示流程分析(二)
  9. php,mysql结合js解决商品分类问题,从而不必联表查询
  10. perf性能调优