Django: запрос, охватывающий несколько many-many отношений

У меня есть некоторые модели, настроенные как это:

class AppGroup(models.Model):
  users = models.ManyToManyField(User)

class Notification(models.Model):
  groups_to_notify = models.ManyToManyField(AppGroup)

Пользовательские объекты прибывают из системы аутентификации django.

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

notifications = Notification.objects.filter(groups_to_notify=AppGroup.objects.filter(users=request.user))

Но это дает ошибку:

больше чем одна строка, возвращенная подзапросом, используемым в качестве выражения

То, которое я предполагаю, - то, потому что groups_to_notify проверяет по нескольким группам.

Как я могу захватить все уведомления, предназначенные для пользователя на основе групп, которых он является частью?

7
задан Brant 21 May 2010 в 15:35
поделиться

1 ответ

Используйте формат двойного подчеркивания для обхода отношений.

Notification.objects.filter(groups_to_notify__users=request.user)
10
ответ дан 7 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: