Джанго - Как использовать фильтр с исключить хорошо? - PullRequest
0 голосов
/ 19 октября 2019

Я не могу понять, как создать запрос, поэтому мне нужна помощь здесь! Это модели:

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]

Как мне это сделать? Спасибо.

...