-1

所以我有这两个模型:

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')

并且两者都添加到一个 Role 对象中,例如:

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

我想写一个查询,它会给我“皇家马德里”和“巴塞罗那”作为结果。

为它编写查询被证明是一个挑战。我能得到什么帮助吗?

4

1 回答 1

0

你需要的是:

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

r您希望获得团队的角色在哪里。

如果您想获得不同的团队,只需将结果放入set().

于 2013-05-22T18:04:19.460 回答