Comment vous joindre deux tables sur un champ de clé étrangère à l'aide de l'ORM de django?

Supposons que j'ai les modèles suivants:

class Position(models.Model):
    name = models.CharField()

class PositionStats(models.Model):
    position = models.ForeignKey(Position)
    averageYards = models.CharField()
    averageCatches = models.CharField()

class PlayerStats(models.Model):
    player = models.ForeignKey(Player)
    averageYards = models.CharField()
    averageCatches = models.CharField()

class Player(models.Model):
    name = models.CharField()
    position = models.ForeignKey(Position)

Je veux effectuer l'équivalent d'une requête SQL à l'aide de l'ORM de django:

SELECT *

FROM PlayerStats

JOIN Player ON player

JOIN PositionStats ON PositionStats.position = Player.position

Comment pourrais-je le faire avec l'ORM de django? La requête n'est pas tout à fait correcte, mais l'idée est que je veux une seule requête, à l'aide de l'ORM de django, qui me donne PlayerStats rejoint avec PositionStats basé sur la position du joueur.

OriginalL'auteur Lee Schmidt | 2012-10-26