Проверьте, не находится ли пользователь, отправляющий запрос, в другой модели

Я пытаюсь создать API, используя REST Framework. Я столкнулся с небольшой проблемой. Я хочу иметь возможность получить список событий для определенного пользователя, отправив запрос к API. Есть ли возможность проверить, входит ли пользователь, отправляющий запрос, в команду, которой принадлежит событие, когда запрашивается список событий?

class Teams(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField(max_length=1000, blank=True)
    Users = models.ManyToManyField(User, blank=True)

class Event(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    eventTime = models.DateTimeField()
    title = models.CharField(max_length=100, default='')
    description = models.TextField(max_length=1000, blank=True)
    group = models.ForeignKey(Teams, on_delete=models.CASCADE)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

вот отношения между моделями, которые я реализовал на данный момент

Вы можете сделать это, перезаписав .get_queryset(). Это должно помочь:

class EventList(generics.ListAPIView):

    def get_queryset(self):
        # 
        return Event.objects.filter(group__users=self.request.user)

Запрос полей "многие ко многим" (на мой взгляд) не очень интуитивен.

Event.objects.filter(group__users=self.request.user) в основном означает "получить все события, которые имеют группу/команду, содержащую текущего пользователя".

Вернуться на верх