[英]Getting many to many fields of many to many association in django model
我在django有兩個級別的多對多關聯。 玩家可以屬於一個或多個團隊。 一支球隊可以參加一場或多場比賽。 鑒於一名球員我想知道他參加過的所有比賽。
以下是簡化模型:
class Tournament(models.Model):
name = models.CharField(max_length=100, blank=True, null=True)
class Team(models.Model):
team_name = models.CharField(max_length=100, blank=True, null=True)
tournaments_played = models.ManyToManyField(Tournament)
class Player(models.Model):
player_name = models.CharField(max_length=100, blank=True, null=True)
belongs_to_team = models.ManyToManyField(Team)
在我看來,我嘗試了以下內容:
pl = Player.objects.get(player_name = "Andrew Flintoff")
ts = pl.belongs_to_team()
qs_list = []
for t in ts:
team_qs = Team.objects.get(team_name = t)
tourn = team_qs.tournaments_played.all()
qs_list.append(tourn)
然后在我的上下文中,我可以傳遞查詢集列表qs_list
。 有更好/更簡單的方法嗎?
p1_tournaments = Tournament.objects.filter(team__player=p1)
為每個反向外鍵或m2m字段創建了隱式查找。 如果指定,它可以是小寫的模型類,也可以是related_name
參數。
因此,基本上,該過濾器表示獲得與玩家相關的團隊相關的錦標賽, p1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.