2011-02-02 172 views
1

我不確定描述我試圖這麼做的最好方式是如何原諒我的頭銜。Django - 過濾ManyToManyField?

我有兩個模型,用戶和組。組包含字段,成員,這是一個指向用戶的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

如果你有用戶,你想要他的組,然後開始查詢它,而不是周圍的方式;)

下面是一個例子:

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

我相信這隻會在ManyToManyField上設置related_name ='groups'屬性時才起作用 – XORcist 2011-02-02 19:15:46

1

最簡潔的方式可能是

groups = user1.group_set.all() 

它給你一個QuerySet是可迭代。