Проверьте, не находится ли пользователь, отправляющий запрос, в другой модели
Я пытаюсь создать 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) в основном означает "получить все события, которые имеют группу/команду, содержащую текущего пользователя".