2013-09-03 3 views
4

Существует forloop в Java, где я могу сказать, с чего начать и где закончить:как установить пользовательские forloop начальную точку в шаблоне Джанго

for(int i=10;i<array.length;i++){ 

} 

но как я могу реализовать эту int i=10 в шаблоне Django? Как я могу установить начальную и конечную точку самостоятельно?

есть forloop.first и forloop.last, но они определены внутри цикла, и я не могу сделать что-то вроде этого ?:

{{forloop.first=10}} 

{% for athlete in athlete_list %} 
    <li>{{ athlete.name }}</li> 
{% endfor %} 

{{forloop.last=20}} 

Я прочитал Джанго документ, но эта функция, кажется, не существует

+0

Зачем вам это нужно? –

+0

@thomasorozco, просто из интереса. – doniyor

+0

u может создать собственный тег шаблона, который может сделать это для вас, что-то вроде этого http://djangosnippets.org/snippets/779/ – montiniz

ответ

5

Как об использовании встроенного slice фильтра:

{% for athlete in athlete_list|slice:"10:20" %} 
    <li>{{ athlete.name }}</li> 
{% endfor %} 

Если вам нужно сделать числовой цикл (так же, как в Python range), вам нужен пользовательский тег шаблона, как это одна: http://djangosnippets.org/snippets/1926/

другие range фрагменты:

Также см:

Кстати, это не похоже на задание для шаблонов - рассмотрим возможность передачи диапазона из представления. И, FYI, там был proposal, чтобы сделать такой тег, но он был отклонен, потому что it is trying to lead to programming in the template. - подумайте об этом.

+0

Мой пример был всего лишь примером кода, а не моим. но реальный вопрос: могу ли я рассчитывать с 2001 до 3001 в шаблоне в forloop? – doniyor

+0

@doniyor ok, см. Обновленный ответ. – alecxe

+0

Alecxe the Great! спасибо buddy :) – doniyor

Смежные вопросы