我要问的最近的事情可以找到here
说我有以下型号:
class Division(models.Model):
name = models.TextField()
state = models.IntegerField()
class Team(models.Model):
name2 = models.TextField()
division = models.ForeignKey(Division, ...)
class Player(models.Model):
name = models.TextField()
hometown = models.IntegerField()
team = models.ForeignKey(Team, ...)
现在我已经可以只针对一个表执行以下操作:
players = Player.objects.prefetch_related('team')
如何将state
添加到查询集?我的结局是能够在模板中执行player.team.division.state
。另一种选择是使用嵌套for循环,但我想避免这种情况。
答案 0 :(得分:3)
此处您不需要prefetch_related
。您可以使用select_related()
关注从Player
到Team
到Division
的外键。
players = Player.objects.select_related('team__division')
prefetch_related
的用例是,如果您使用Division
查询集开始,并希望同时获取相关团队。