Я не уверен, имеет ли смысл смысл, но вот вопрос.Получение уникальных результатов в Django queryset на основе содержимого столбца
Контекст: Я хочу отслеживать, какие ученики входят и покидают класс, чтобы в любой момент я мог знать, кто находится внутри класса. Я также хочу отслеживать, например, сколько раз студент вошел в класс. Это гипотетический пример, который очень близок к тому, чего я хочу достичь.
Я сделал таблицу Classroom, и каждая запись имеет Student (ForeignKey), Action (введите, оставить) и Date.
Мой вопрос заключается в том, как получить учащиеся, которые в настоящее время находятся внутри (то есть дата их вступления в действие, более поздняя, чем дата их отпуска или дата отпуска), и как указать диапазон дат чтобы получить учеников, которые были в классе в то время.
Edit: На лучшей мысли я хотел бы также добавить, что есть более чем один классы.
моя первая попытка была что-то вроде этого:
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
, так как есть два «входа» и один «отпуск». Кроме того, я не могу проверить конкретные диапазоны дат, чтобы узнать, какие студенты имеют дату записи, которая позже даты отпуска.
спасибо, я проверю его и дам вам знать. поэтому вместо того, чтобы иметь один столбец для действия, вы предлагаете наличие двух столбцов (введите и оставьте). в таком случае, в админе, как я могу убедиться, что хотя бы один не является нулевым. –