2013-05-22 117 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()