Передача урлов итеративно в тег url шаблона django html
У меня есть домашний шаблон со ссылками на множество других страниц, которые я хочу отображать итеративно: (это, очевидно, не работает из-за синтаксиса python)
{% for idx, category in enumerate(categories) %}
<div class="box">
a href={% url 'category_links[idx]' %}> {{category}}</a>
div>
{% endfor %}
У меня есть следующие url, которые я также передаю в мой шаблон из моего представления:
category_links = ['journals', 'proceedings', 'books', 'articles_in_books', 'talks', 'poster', 'habilitations', 'phd_thesis', 'bachelor_master_diploma_thesis', 'lectures', 'conferences', 'calls_and_awards', 'telegrams_and_circulars']
Я знаю о {{forloop.counter0}}
, но не смог интегрировать его должным образом.
Буду очень признателен за помощь!
Вы можете циклически просматривать список с помощью {{ forloop.counter }}, просто сделав пользовательский фильтр шаблона
I.E : то же самое, что использовать list_object[index]
в python
templatetags/index.py (создайте папку templatetags в корневом каталоге приложения)
from django import template
register = template.Library()
@register.filter
def index(list_object, i):
return list_object[i]
template.html
{% load index %}
{% for category in categories %}
{% with forloop.counter0 as i %}
<div class="box">
a href={% url 'category_links|index:i' %}> {{category}}</a>
<div>
{% endwith %}
{% endfor %}