Как получить доступ к groupList.i в цикле django for? - PullRequest
0 голосов
/ 28 апреля 2011

Я создал цикл for в django внутри шаблона.У меня есть список имен, который объявлен как groupList = ['superUsers', 'group1', 'group2', 'groupless'].Я могу позвонить отдельным членам группы, сказав {{ groupList.2 }} (это выводит group2).Но как только я пытаюсь вызвать {{ groupList.i }} внутри моего цикла for, ничего не выводится.Мой код выглядит следующим образом:

{% for i in length|get_range %}
    {{ groupList.i }} <br /> <br />
    {% for staff in staffList.i %}
        {{staff}} <br /> <br />
    {% endfor  %}
{% endfor %}

Длина определяется как: length = len(groupList).

Я надеюсь, что у меня будет возможность отобразить первое имя группового списка, за которым следует список именза которым следует второе имя groupList, а затем соответствующий список имен.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 03 августа 2012

Попробуйте что-то похожее на это решение

Вот как я бы изменил его в соответствии с вашими потребностями:

{% for i in length|get_range %}
    {% with i as index %}
    {% with i|slugify|add:":"|add:i as subset %}
    {% with staffList|slice:subset as sublist %}

    <p>Previous item: {{ sublist.0 }}</p>

    {% endwith %}
    {% endwith %}
    {% endwith %}
{% endfor %}

Так что это определенно НЕ элегантное решение, но именно так я выполняю поиск набора / списка ., когда хочу использовать вычисленное значение.

На самом деле решение Aviraldg гораздо элегантнее и использует лучший подход для того, что вы хотели бы конкретно выполнить.

0 голосов
/ 28 апреля 2011

Попробуйте определить другую переменную шаблона как:

foo = zip(groupList, staffList)

и его использование:

{% for group, staff in foo %}
    {{ group }}
    {{ staff }}
{% endfor %}

Похоже, самый элегантный способ делать то, что вы хотите (imho.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...