Изменять состояние объекта в шаблоне Django не рекомендуется.Возможно, вам следует прикусить пулю, заранее рассчитать условие и передать в шаблон дополнительное состояние, чтобы вы могли упростить логику шаблона.
Кстати, я не пурист в этом отношении, но меня укусилцеленаправленные ограничения шаблонов Django несколько раз.По моему мнению, вам лучше не бороться с этим.
Поскольку ваше намерение состоит в том, чтобы отфильтровать несоответствующие элементы, альтернативой будет отфильтровать те, которые находятся в представлении, и затем использовать {{ forloop.counter }}
, чтобы отсортировать нужный текст ссылки.Итак, в представлении у вас есть что-то вроде этого:
new_lst = filter(lambda x: x.attr0 == attr0 and x.attr1 == attr1, lst)
А затем, в вашем шаблоне:
{% for object in new_lst %}
<li><a href="{{ object.get_absolute_url }}"> Link {{ forloop.counter }} </a></li>
{% endfor %}