0

I've two objects teams and tournaments,

class Tournament(Base):

    name = models.CharField(db_index=True, max_length=255)
tournament = Tournament.objects.get(id=kwargs.get('tournament_id'))

class Team(Base):

    name = models.CharField(db_index=True, max_length=255)
    tournaments = models.ManyToManyField(Tournament)

Now I want to filter teams in one specific tournament

tournament = Tournament.objects.get(id=kwargs.get('tournament_id'))
   teams = Team.objects.filter(tournament=tournament) // This doesn't work.

How do I do this?

halfer
  • 19,824
  • 17
  • 99
  • 186
Melissa Stewart
  • 3,483
  • 11
  • 49
  • 88

2 Answers2

0
desired_tournament = Tournament.objects.get(id=1)
desired_teams = Team.objects.filter(tournaments__in=[desired_tournament])
matyas
  • 2,696
  • 23
  • 29
0

You almost got it right.

# This doesn't work.
teams = Team.objects.filter(tournament=tournament)

# This does. Not exactly intuitive, I'll concede.
teams = Team.objects.filter(tournaments=tournament) 
Endre Both
  • 5,540
  • 1
  • 26
  • 31