【发布时间】:2010-01-22 16:18:36
【问题描述】:
我不确定这个标题是否有意义,但这是问题所在。
上下文:我想跟踪哪些学生进出教室,以便在任何给定时间我都可以知道谁在教室里。我还想跟踪,例如,学生进入教室的次数。这是一个非常接近我想要实现的假设示例。
我做了一个表格教室,每个条目都有一个学生(外键)、操作(进入、离开)和日期。
我的问题是如何让当前在里面的学生(即他们的进入操作的日期晚于他们的离开操作的日期,或者没有离开日期),以及如何指定一个日期范围来找到当时在教室里的学生。
编辑:更好的想法我还应该补充一点,有不止一个教室。
我的第一次尝试是这样的:
students_in = Classroom.objects.filter(classroom__exact=1, action__exact='1')
students_out = Classroom.objects.filter(classroom__exact=1, action__exact='0').values_list('student', flat=True)
students_now = students_in.exclude(student__in=students_out)
如果action == 1 输入,0 输出。
但是,一旦学生离开教室并重新进入,这就会提供错误的数据。她在students_now 查询集中被列出两次,因为有两个“进入”和一个“离开”。此外,我无法检查特定日期范围以查看哪些学生的入学日期晚于他们的离开日期。
【问题讨论】: