所以我有这两个模型:
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()
我想写一个查询,它会给我'皇家马德里'和'巴塞罗那'作为结果。
为它编写查询证明是一个挑战。我可以获得任何帮助吗?
答案 0 :(得分:0)
您需要的是:
r.players.values_list('playerTeam', flat=True)
r
是您希望获得团队的角色。
如果您想获得不同的团队,只需将结果放在set()
。