Django-如何很好地使用过滤器?

时间:2019-10-19 05:42:25

标签: sql django postgresql django-models

我无法弄清楚构建查询的方式,因此在这里我需要一些帮助!这是模型:

class User(models.Model):
    id = models.BigAutoField(primary_key=True)
    name = models.TextField()

class Employee(models.Model):
    user = models.ForeignKey(User, primary_key=True)

class Service(models.Model):
    id = models.UUIDField(primary_key=True)
    user = models.ForeignKey(User)
    employee = models.ForeignKey(Employee)

    views = models.ManyToManyField(Employee)

因此,一名员工需要获得没有指定员工的第一项服务,查询如下:

Services.objects.filter(employee__isnull=True)[:1]

在员工看到服务以views的形式(如Service)添加到service.views.add(employee)后,该员工只能看到一次服务。因为查询是针对员工的,所以我需要排除该员工之前已经看到的服务,因此我尝试了以下方法:

Services.objects.filter(employee__isnull=True).exclude(views__views__employee_id=1)[:1]

我应该怎么做?谢谢。

0 个答案:

没有答案