Каков наилучший способ получить row_num в Django? - PullRequest
0 голосов
/ 11 мая 2011

Каков наилучший способ получить row_num в django? Можем ли мы использовать переменную в качестве счетчика в тегах шаблонов django?

{% for o in objects %}
<tr>
  <td>{{ row_num }}</td>
  <td>{{ o.first_name }}</td>
  <td>{{ o.last_name }}</td>
</tr>
{% endfor %}

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 11 мая 2011

Вы можете использовать тег шаблона forloop:

  • forloop.counter -> Текущая итерация цикла (индексируется 1)
  • forloop.counter0 -> Текущая итерация цикла (с индексами 0)
  • forloop.revcounter -> Количество итераций с конца цикла (с 1 индексированием)
  • forloop.revcounter0 -> Количество итераций с конца цикла (с 0 индексами)
  • forloop.first -> True, если это первый раз в цикле
  • forloop.last -> True, если это последний раз в цикле
  • forloop.parentloop -> Для вложенных циклов это цикл "над" текущим
0 голосов
/ 11 мая 2011

Я не использую django (я использую пилоны), но я не думаю, что это на самом деле "проблема" django. Вы должны использовать «перечислить». Это часть языка Python.

Как это:

for i, book in enumerate(books): 
    print i+". "+book.name 

это напечатало бы

  1. Гарри Поттер
  2. Властелин колец

поэтому в вашем случае вы должны написать:

{% for i, o in enumerate(objects) %}
<tr>
  <td>{{ i }}</td>
  <td>{{ o.first_name }}</td>
  <td>{{ o.last_name }}</td>
</tr>
{% endfor %}

Надеюсь, это было то, что вы искали.

Бест, к.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...