【发布时间】:2014-09-22 19:09:09
【问题描述】:
我有一个学校注册应用程序,正在尝试创建一个基于网络的报告,其中列出了一个学期的每个班级、教师、助教和学生。
您可以在下面看到我正在创建一个字典,其中键设置为班级名称,值设置为学生列表。但是,我需要为助手做同样的事情。
我可以为每个班级的助手创建类似的东西(每个班级的助手可能为零到无限),但我不确定在那之后该怎么做,我认为这不是传递数据的最佳方式到模板。
如果我有一个 student_dict 和一个 assistant_dict 传递给模板,我该如何循环它们?我似乎找不到过滤字典键的方法,所以我不能循环遍历助手列表,然后创建一个将 assistant_dict[course] 与 student_dict[course] 匹配的内部循环。或者,也许我可以也无法弄清楚。
或者,也许有一个更简单的方法来解决这个问题。
感谢您提供的任何建议。
schedule = Schedule.objects.filter(semester__name='2014 Fall').prefetch_related()
schedule_list = schedule.values_list('course_catalog__course_name', flat=True).order_by('semester_period__name')
student_dict=dict([(schedule_list,[]) for schedule_list in list(schedule_list)])
student_enrolls = StudentEnroll.objects.filter(schedule__semester__name = '2014 Fall').values_list('student__family_member__first_name', 'student__family_member__last_name', 'schedule__course_catalog__course_name')
for (fname, lname, course) in student_enrolls:
student_dict[course].append(fname + ' ' + lname)
for k in student_dict.keys():
student_dict[k].sort()
【问题讨论】:
-
你能展示你的模型为每个和相关的外键字段吗?
-
你为什么需要这些字典?为什么不循环遍历班级,并通过现有关系为每个班级输出学生和助手?
标签: django