Джанго дополнение - PullRequest
       13

Джанго дополнение

0 голосов
/ 15 ноября 2010

как увеличить значение переменной в шаблоне .. ??

{% for s in list%}
     {% for subject in s%}
             {% for sub in subject %}

                    <div id="{{ sub| getid:i }}"></div> 
                    # here i want to increment the value of i 
             {% endfor %}
      {% endfor %}
{% endfor %}

Ответы [ 3 ]

4 голосов
/ 15 ноября 2010

Если вы хотите увеличить i по всем вложенным циклам, вы можете передать другую переменную контекста с состоянием, такую ​​как i=itertools.count(), и в шаблоне вы используете

<div id="{{ sub| getid:i.next }}"></div>

Документация Django по дизайну языка шаблонов утверждает, что философия языка шаблонов заключается в том, что

система шаблонов предназначена для выражения представления, а не логики программы.

И это часто означает, что вы не можете напрямую манипулировать состоянием с помощью фильтров. Для достижения изменений состояния вам нужно будет создать собственные переменные с состоянием, состояние которых можно изменить с помощью вызова функции.

3 голосов
/ 15 ноября 2010

Используя шаблон для цикла? Вы можете попробовать это, используя:

forloop.counter

см. Документы здесь: http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs

Реализация:

{% for s in list%} 
  {% for subject in s%} 
    {% for sub in subject %}
                <div id="{{ sub| getid:forloop.counter+(forloop.parentloop.counter - 1)*total_iterations_inner_loop+(forloop.parentloop.parentloop.counter-1)*total_iterations_mid_loop*total_iterations_inner_loop }}"></div> 
         {% endfor %}
  {% endfor %}
{% endfor %}
0 голосов
/ 15 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...