Попробовал переделать набор в список в
views.py. Но как-то толком не вышло.
На текущий момент решил по-другому.
В
views.py добавил
context['range_1_7'] = range(1, 7)
Это позволяет пройти по циклу в шаблоне 6 раз (т.к. максимум 6 игроков в каждой команде).
И вывод по строкам/столбцам теперь такой (
templates):
{% for row in range_1_7 %}
<tr>
{% for team in server.team_set.all %}
{% with team.player_set.all as player_list %}
<td>
{% if row == 1 %}
{{ player_list.0.name }}
{% elif row == 2 %}
{{ player_list.1.name }}
{% elif row == 3 %}
{{ player_list.2.name }}
{% elif row == 4 %}
{{ player_list.3.name }}
{% elif row == 5 %}
{{ player_list.4.name }}
{% elif row == 6 %}
{{ player_list.5.name }}
{% endif %}
</td>
{% endwith %}
{% endfor %}
</tr>
{% endfor %}
Конечно, наверное это совсем не красивое решение, но работает.
Еще бы разобраться как можно сделать что-то вроде переменной в переменной:
{{ player_list.{{ row-1 }}.name }}
Тогда и уйдет многоэтажный IF.