Как я могу передать значения элементов списка по индексу в шаблон - как количество итераций цикла?
Как я могу передать значения элементов списка по индексу в шаблон - как количество итераций цикла?
У меня есть цикл в шаблоне, и я хотел бы передать количество итераций в цикле в качестве значения элемента в списке.
[10, 5, 8] - каждому элементу списка соответствует требуемое количество итераций.
list_2 = [10, 5, 8]
j = 0
i = 0
{% for len(list_1) ...number of iterations... in %}
<a>list_1[j]</a>
{% for list_2[j] ...number of iterations... in %}
<div>
{{ list_3[i] }}
i = i + 1
</div>
{% endfor %}
j = j + 1
{% endfor %}
<время работы/>
<div>
<fieldset>
<legend>{{ form_2.name_working.label }}</legend>
{% for radio in form_2.name_working %}
<div class="myradio">
{{ radio }}
</div>
{% endfor %}
</fieldset>
</div>
Если я правильно понимаю, вам нужно 2 пользовательских шаблонных фильтра: один для получения элемента списка по индексу, а другой для генерации диапазона из числа
# The 1st templatetag
from django import template
register = template.Library()
@register.filter
def list_item(the_list, index):
return the_list[index]
# The 2nd tmeplatetag
from django import template
register = template.Library()
@register.filter
def num_range(num):
return range(num)
Эти 2 файла должны находиться в your_app/templatetags/ , с дополнительным __init__.py , чтобы сервер загружал их при запуске.
А затем в вашем шаблоне
{% load list_item num_range %}
{% for j in list_1 %}
<div>{{ j }}</div>
{% for i in list_2|list_item:j|num_range %}
<div>
{{ list_3|list_item:i }}
</div>
{% endfor %}
{% endfor %}