我无法弄清楚构建查询的方式,因此在这里我需要一些帮助!这是模型:
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]
我应该怎么做?谢谢。