ближе всего к тому, что я спрашиваю, можно найти heredjango- Использование prefetch_related внутри другого prefetch_related
Скажем, у меня есть следующие модели:
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
к QuerySet? Мой endgoal должен иметь возможность делать player.team.division.state
внутри шаблона. Другой альтернативой было бы использование вложенных циклов, но я хотел бы избежать этого.
Ваши примеры моделей трудно понять, потому что они имеют очень похожие имена и поля. Не существует поля foreign key/many-to-many от другой модели до 'model3', поэтому нет причин использовать' prefetch_related' здесь. Простой 'select_related' будет работать. – Alasdair
@Alasdair Пожалуйста, взгляните на мое редактирование – mjr