0

我有两个模型

用户模型和 DailyPresent 模型,用户为 DailyPresent 模型中的 foreign_key。

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 

但是当用户没有登录时,什么也没有发生。

现在我想显示一个包含所有用户的表格,其中包含存在和不存在字段。

请帮助我..提前谢谢

4

1 回答 1

0

您可以使用 Q 模块,在搜索时处理“或”条件的组合:

from django.db.models.query_utils import Q

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

或用于.exclude排除 On Leave:

dailyPresents = DailyPresentReport.objects.exclude(present="ON_LEAVE")
于 2021-05-03T06:01:48.347 回答