2013-05-22 142 views
-1

所以,我有兩個模型:在Django模型查詢多對多場

class Player(models.Model): 
    playerName = models.CharField(max_length= 50) 
    playerTeam = models.CharField(max_length=20) 

class Role(models.Model): 
    roleName = models.CharField(max_length= 50) 
    players = models.ManyToManyField(Player) 

現在,下一個角色存儲不同的球員很容易。我的目標是在一個角色下找回不同的'playerTeam'。爲了說清楚,我希望字符串格式的不同團隊的價值。所以,如果兩個Player對象存儲爲:

p = Player(playerName='Zidane', playerTeam = 'Real Madrid') 
p1 = Player(playerName='Laudrup', playerTeam = 'Barcelona') 

,並都被添加到一個角色對象,說:

r = Role(roleName='playmaker') 
r.save() 
r.add(p) 
r.add(p1) 
r.save() 

我想編寫一個查詢,這將給我「皇馬」和'巴塞羅那'作爲結果。

爲它寫入查詢被證明是一個挑戰。我可以得到什麼幫助?

+0

https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/ – themanatuf

+0

@themanatuf我已閱讀文檔。我正在查找的查詢未提供。 – user2410179

+0

@ TimmyO'Mahony我試圖寫一個查詢來獲得列表中的這兩個值,但我沒有這樣做。 – user2410179

回答

0

你需要的是:

r.players.values_list('playerTeam', flat=True) 

哪裏r是要獲得球隊中的作用。

如果你想得到不同的團隊,只需把結果放在set()