django- 在另一个 prefetch_related 中使用 prefetch_related
django- Use prefetch_related inside of another prefetch_related
可以找到与我的要求最接近的内容 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, ...)
现在我已经可以为一个 table 执行以下操作:
players = Player.objects.prefetch_related('team')
我该如何将 state
添加到查询集中?我的最终目标是能够在模板内执行 player.team.division.state
。另一种选择是使用嵌套 for 循环,但我想避免这种情况。
这里不需要prefetch_related
。您可以使用 select_related()
.
跟随外键从 Player
到 Team
再到 Division
players = Player.objects.select_related('team__division')
prefetch_related
的一个用例是,如果您从 Division
查询集开始,并希望同时获取相关团队。
可以找到与我的要求最接近的内容 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, ...)
现在我已经可以为一个 table 执行以下操作:
players = Player.objects.prefetch_related('team')
我该如何将 state
添加到查询集中?我的最终目标是能够在模板内执行 player.team.division.state
。另一种选择是使用嵌套 for 循环,但我想避免这种情况。
这里不需要prefetch_related
。您可以使用 select_related()
.
Player
到 Team
再到 Division
players = Player.objects.select_related('team__division')
prefetch_related
的一个用例是,如果您从 Division
查询集开始,并希望同时获取相关团队。