diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index 34525c9..cccc811 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -506,7 +506,7 @@ class Tournament(BaseModel): group_stage = self.group_stages.filter(id=group_stage_id).first() match_groups.append(self.group_stage_match_group(group_stage, broadcasted, hide_empty_matches=False)) elif round_id: - round = self.rounds.filter(id=round_id).first() + round = self.rounds.filter(id=round_id).first().prefetch_related('matches') if round and display_brackets is True: match_groups = self.round_match_groups(round, broadcasted, hide_empty_matches=False) else: @@ -518,12 +518,13 @@ class Tournament(BaseModel): groups = [] if self.display_matches(): - rounds = self.rounds.filter(parent=None, group_stage_loser_bracket=False).all().order_by('index') + rounds = self.rounds.filter(parent=None, group_stage_loser_bracket=False).all().order_by('index').prefetch_related('matches') for round in rounds: groups.extend(self.round_match_groups(round, broadcasted, hide_empty_matches=True)) if self.display_group_stages(): - for round in self.rounds.filter(parent=None, group_stage_loser_bracket=True).all().order_by('index'): + rounds = self.rounds.filter(parent=None, group_stage_loser_bracket=True).all().order_by('index').prefetch_related('matches') + for round in rounds: groups.extend(self.round_match_groups(round, broadcasted, hide_empty_matches=True)) group_stages = sorted(self.sorted_group_stages(), key=lambda s: (-s.step, s.index)) @@ -609,7 +610,7 @@ class Tournament(BaseModel): def sorted_group_stages(self): # Get all group stages and sort by step (descending) and index (ascending) - group_stages = self.group_stages.all().order_by('-step', 'index') + group_stages = self.group_stages.all().order_by('-step', 'index').prefetch_related('matches') # List to collect live group stages from finished steps filtered = []