我不确定标题是否有意义,但这是问题所在。
背景:我想跟踪哪些学生进出教室,以便在任何给定时间我都可以知道谁在教室里。我还想跟踪,例如,学生进入教室的次数。这是一个假设的例子,非常接近我想要实现的目标。
我做了一个表教室,每个条目都有一个学生(外键)、操作(进入、离开)和日期。
我的问题是如何获取当前在里面的学生(即他们的输入操作的日期晚于他们的离开操作的日期,或者没有离开日期),以及如何指定一个日期范围来获取学生当时在教室里。
编辑:更好的想法我还应该补充一点,有不止一个教室。
我的第一次尝试是这样的:
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
,因为有两个“进入”和一个“离开”。此外,我无法检查特定日期范围以查看哪些学生的入学日期晚于他们的离开日期。