У меня есть два объекта списка одинаковой длины с дополнительными данными, которые я хочу отобразить, есть способ визуализации одновременно, т.е.
{% for i,j in table, total %}
{{ i }}
{{ j }}
{% endfor %}
или что-то подобное?
У меня есть два объекта списка одинаковой длины с дополнительными данными, которые я хочу отобразить, есть способ визуализации одновременно, т.е.
{% for i,j in table, total %}
{{ i }}
{{ j }}
{% endfor %}
или что-то подобное?
Если оба списка имеют одинаковую длину, вы можете вернуть zipped_data = zip(table, total)
в качестве контекста шаблона в своем представлении, в результате чего вы получите список 2-значных кортежей.
Пример:
>>> lst1 = ['a', 'b', 'c']
>>> lst2 = [1, 2, 3]
>>> zip(lst1, lst2)
[('a', 1), ('b', 2), ('c', 3)]
В вашем шаблоне вы можете написать:
{% for i, j in zipped_data %}
{{ i }}, {{ j }}
{% endfor %}
Кроме того, ознакомьтесь с документацией Django о теге for
здесь. В нем упоминаются все возможности, которые у вас есть для использования, включая приятные примеры.
Используйте функцию zip zip и запишите два списка вместе.
На ваш взгляд:
zip(table, list)
В шаблоне вы можете повторить это как простой список и использовать свойства .0 и .1 для доступа к данным из таблицы и списка соответственно.
Если это просто переменные i
и j
, которые вы смотрите, тогда это должно работать -
return render_to_response('results.html',
{'data': zip(table, list)})
{% for i, j in data %}
<tr>
<td> {{ i }}: </td> <td> {{ j }} </td>
</tr>
{% endfor %}
(кредит всем, кто ответил на этот вопрос)
Вместо использования словаря (который не гарантирует никакой сортировки), используйте функцию python zip
в двух списках и передайте ее в шаблон.
Вам нужно сделать это в представлении - используйте встроенную zip-функцию, чтобы составить список кортежей, а затем перетащите ее в шаблон.
Логика шаблонов преднамеренно проста, что-то даже слегка сложное должно быть сделано в представлении.
Для недавних посетителей этого вопроса forloop.parentloop может имитировать скрепление двух списков вместе:
{% for a in list_a %}{% for b in list_b %}
{% if forloop.counter == forloop.parentloop.counter %}
{{a}} {{b}}
{% endif %}
{% endfor %}{% endfor %}