显示所有在职和缺勤状态的员工

问题描述

我有两个模型

用户模型和 DailyPresent 模型,用户作为 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 

但是当用户登录时,什么也不会发生。

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

请帮助我.. 提前致谢

解决方法

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

()

或使用 from django.db.models.query_utils import Q dailyPresents = DailyPresentReport.objects.filter(Q(present="PRESENT") | Q(present="ABSENT")) 排除休假:

.exclude