Печать значения внешнего ключа в шаблоне без выполнения запроса

У меня есть запрос, который я делаю в своем представлении, чтобы получить кучу объектов статистики команды...

    team_stats = NCAABTeamStats.objects.filter(
            name__name__in=teams_playing).order_by(sort)

Одно из полей 'name' является внешним ключом. Я передаю team_stats в мой шаблон для отображения данных на графике с помощью цикла 'for loop'.

    {% for team in team_stats %}
       <tr>
          <td>
              {{ team.name }}
          </td>
       </tr>
    {% endfor %}

В моем шаблоне для каждого объекта в team_stats выполняется запрос, когда он печатает {{ team.name }}, и это действительно замедляет работу, особенно когда есть 50-100 команд

Мой вопрос в том, есть ли способ вывести 'team.name' без выполнения запроса каждый раз?

Вместо того чтобы хранить фактические объекты в переменной team_stats, не могли бы вы просто хранить значения имен?

если это иностранный ключ, вы можете сделать что-то вроде этого

team_stats=NCAABTeamStats.objects.select_related('name').filter(name__name__in=teams_playing).order_by(sort)

вы можете узнать больше о select_related здесь

если это многотомное поле, вы можете сделать что-то вроде этого

team_stats=NCAABTeamStats.objects.prefetch_related('name').filter(name__name__in=teams_playing).order_by(sort)

Вы можете узнать больше о prefetch_related Здесь

Вернуться на верх