Django - 过滤ManyToManyField?

时间:2011-02-02 17:59:48

标签: python django django-models

我不确定描述我尝试这样做的最佳方式是原谅我的头衔。

我有两个型号,User和Group。组包含字段,成员,它是引用用户的ManyToManyField。

鉴于用户,我想找到该用户所属的所有组。

我的想法是做这样的事情:

groups = Group.objects.filter(user in members)

这样的事情。即使我意识到这是不对的

我尝试通过此链接阅读但无法弄清楚如何申请: http://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships

由于

编辑:

想出来 groups = Group.objects.filter(members__username = user.username)

2 个答案:

答案 0 :(得分:2)

如果您有该用户,并且您想拥有他的群组,那么就开始查询它,而不是那种方式;)

以下是一个例子:

james = User.objects.get(pk= 123)
james_groups = james.group_set.all()

答案 1 :(得分:1)

最简洁的方法可能是

groups = user1.group_set.all()

它为您提供了一个可迭代的查询集。