code_junkie

In Django, how do you retrieve data from extra fields on many-to-many relationships without an explicit query for it

Nov 13th, 2011
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. class Player(models.Model):
  2. name = models.CharField(max_length=80)
  3.  
  4. class Team(models.Model):
  5. name = models.CharField(max_length=40)
  6. players = models.ManyToManyField(Player, through='TeamPlayer', related_name='teams')
  7.  
  8. class TeamPlayer(models.Model):
  9. player = models.ForeignKey(Player)
  10. team = models.ForeignKey(Team)
  11. captain = models.BooleanField()
  12.  
  13. TeamPlayer.objects.get(player=790, team=168).captain
  14.  
  15. for x in TeamPlayer.objects.filter(team=168):
  16. if x.captain:
  17. print "%s (Captain)" % (x.player.name)
  18. else:
  19. print x.player.name
  20.  
  21. t = Team.objects.get(pk=168)
  22. for x in t.teamplayer_set.all():
  23. if x.captain:
  24. print "%s (Captain)" % (x.player.name)
  25. else:
  26. print x.player.name
Add Comment
Please, Sign In to add comment