У меня есть некоторые модели, настроенные как это:
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 проверяет по нескольким группам.
Как я могу захватить все уведомления, предназначенные для пользователя на основе групп, которых он является частью?
Используйте формат двойного подчеркивания для обхода отношений.
Notification.objects.filter(groups_to_notify__users=request.user)