У меня есть два уровня много-много ассоциаций в 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
.Есть ли лучший / более простой способ сделать это?