Например , в шаблон передается некоторое число и необходимо организовать цикл от 0 до этого числа - 1
Средствами встроенных шаблонных тегов и фильтров сделать это , судя по всему , нельзя. Но есть простое решение : передавть в шаблон не число а значение, возвращаемое встроенной python-функцией range.
Например там, где было
... context['num'] = Somemodel.objects.count(), ...
надо сделать
... context['num'] = range(Somemodel.objects.count()), ...
после чего в шаблоне можно уже делать вот так:
...
{%for i in num%}
...
{%endfor%}
...
Действительно работает!
ОтветитьУдалитьМожно также воспользоваться собственным фильтром.
ОтветитьУдалитьСоздать фильтр:
myapp/templatetags/filters.py:
@register.filter
def create_range(value):
return range(value)
И в шаблоне использовать написанный фильтр:
myapp/template/index.html:
{% load filters %}
{% for i in 10|create_range %}
...
{% endfor %}
Да, сейчас я так и делаю )
Удалить