Forloop.counter для двумерного массива в Django Template

Я использую forloop.counter для моего списка. У меня двумерный список. Если я попробую это, все работает идеально.

{{team_members|index:1|index:0}}

Но когда я пробую следующее:

{{team_members|index:forloop.counter|index:0}}

где forloop.counter = 1 это выводит меня

индекс списка вне диапазона

Не могли бы вы объяснить почему? Если я кодирую следующим образом:

{{team_members|index:forloop.counter}}

он тоже работает идеально.

Редактировать

<div class="card card-body" data-toggle="tooltip" data-placement="bottom" data-html="true" twipsy-content-set="true" class="tooltip ficon-help-icon" title="Leader: 
                {% with team_member=team_members|index:forloop.counter %}
                    {{ team_member|index:0 }}
                {% endwith %}<br>Members: {{team_members.1.1}}">
                {{team.name|teamName}}
</div>

Если вы составите такую цепочку, шаблонизатор будет пытаться применить фильтр шаблонов index на forloop.counter, а не на team_members[forloop.counter].

Единственный способ контролировать порядок оценки - использовать тег шаблона {% with %}:

{% with team_member=team_members|index:forloop.counter %}
    {{ team_member|index:0 }}
    {# or with the dot syntax: #}
    {{ team_member.0 }}
{% endwith %}
Вернуться на верх