Печать значения внешнего ключа в шаблоне без выполнения запроса
У меня есть запрос, который я делаю в своем представлении, чтобы получить кучу объектов статистики команды...
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 Здесь