используя поиск по индексу списка в цикле шаблона в django - PullRequest
3 голосов
/ 12 сентября 2011

По сути, я хочу сделать так, чтобы система шаблонов проходила через два независимых списка, чтобы заполнить два столбца таблицы. Мой подход состоял в том, чтобы использовать список индексов (numList) как способ доступа к одному и тому же индексу двух списков. Я попытался использовать точечную запись для поиска по списку в цикле шаблона, но, похоже, он не работает в цикле. Любые идеи о том, как я могу исправить это?

numList = [0, 1, 2, 3]
placeList = ['park', 'store', 'home', 'school']
speakerList = ['bill', 'john', 'jake', 'tony']

        <table>
            <tr>
                <th>Location</th>
                <th>Time</th>
                <th>Speaker</th>
            </tr>
            {% for num in numList %}
             <tr>
                <td>{{ placeList.num }}</td>
                <td>1:30</td>
                <td>{{ speakerList.num }}</td>
             </tr>
             {% endfor %}
        </table>

Ответы [ 2 ]

5 голосов
/ 12 сентября 2011

Возможно, проще всего объединить ваши списки в python, а затем просто просмотреть объединенный список в шаблоне:

combinedList = [(placeList[i],speakerList[i]) for i in range(4)]

{% for entry in combinedList %}
<tr>
<td>{{ entry.0 }}</td>
<td>1:30</td>
<td>{{ entry.1 }}</td>
</tr>
{% endfor %}

Или для прозрачности вы можете сделать комбинированный список списков объектов или словарей дляпример:

combinedList = [{'place':placeList[i],'speaker':speakerList[i]} for i in range(4)]

{% for entry in combinedList %}
<tr>
<td>{{ entry.place }}</td>
<td>1:30</td>
<td>{{ entry.speaker }}</td>
</tr>
{% endfor %}
0 голосов
/ 12 сентября 2011

Вы можете объединить эти два списка в один.

Например:

yourlist = [('park','bill'),('store','john'),('home','jake'),...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...