Django:跨越多个多对多关系的查询

Bra*_*ant 7 django django-models

我有一些这样的模型设置:

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

class Notification(models.Model):
  groups_to_notify = models.ManyToManyField(AppGroup)
Run Code Online (Sandbox Code Playgroud)

User对象来自django的身份验证系统.

现在,我正在尝试获取与当前用户所属的组有关的所有通知.我试过了..

notifications = Notification.objects.filter(groups_to_notify=AppGroup.objects.filter(users=request.user))
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误:

用作表达式的子查询返回的多行

我想这是因为groups_to_notify正在检查几个组.

如何根据用户所属的组获取针对用户的所有通知?

Dan*_*man 10

使用双下划线格式来遍历关系.

Notification.objects.filter(groups_to_notify__users=request.user)
Run Code Online (Sandbox Code Playgroud)