Отображение всех сотрудников в статусе присутствия и отсутствия

У меня две модели

Модель пользователя и модель DailyPresent с пользователем как foreign_key в модели DailyPresent.

      class DailyPresentReport(models.Model):
    PRESENT = 'present'
    ABSENT = 'absent'
    ON_LEAVE = 'on_leave'
    PRESENT_CHOICES = (
        (PRESENT, 'Present'),
        (ABSENT, 'Absent'),
        (ON_LEAVE, 'On Leave'),
    )
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='daily_present_report')
    present = models.CharField(max_length=10, choices=PRESENT_CHOICES, default=ABSENT)
    punch_in = models.DateTimeField(null=True, blank=True)
    punch_out = models.DateTimeField(null=True, blank=True)
    date = models.DateField(null=True, blank=True)
    work_time = models.DurationField(null=True, blank=True)

    class Meta:
        ordering = ['id']

    def __str__(self):
        return f'{str(self.user)}: {self.present}'

If User logs in then he is automatically made present 

но когда пользователь не входит в систему, ничего не происходит.

Теперь я хочу отобразить таблицу со всеми пользователями с полями присутствия и отсутствия.

Пожалуйста, помогите мне .. Заранее спасибо

1 ответ

вы можете использовать модуль Q, обрабатывая комбинацию условий «или» при поиске:

      from django.db.models.query_utils import Q

dailyPresents = DailyPresentReport.objects.filter(Q(present="PRESENT") |
                                                  Q(present="ABSENT"))

или используйте .exclude чтобы исключить в отпуске:

      dailyPresents = DailyPresentReport.objects.exclude(present="ON_LEAVE")
Другие вопросы по тегам