【问题标题】:What is the best way to get row_num in django?在 django 中获取 row_num 的最佳方法是什么?
【发布时间】:2011-05-11 08:21:44
【问题描述】:

在 django 中获取 row_num 的最佳方法是什么?我们可以在 django 模板标签中使用变量作为计数器吗?

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

提前致谢。

【问题讨论】:

    标签: python django templates


    【解决方案1】:

    你可以使用forloop模板标签:

    • forloop.counter -> 循环的当前迭代(1-indexed)
    • forloop.counter0 -> 循环的当前迭代(0-indexed)
    • forloop.revcounter -> 循环结束后的迭代次数(1-indexed)
    • forloop.revcounter0 -> 循环结束后的迭代次数(0-indexed)
    • forloop.first -> 如果这是第一次循环,则为真
    • forloop.last -> 如果这是最后一次循环,则为真
    • forloop.parentloop -> 对于嵌套循环,这是当前循环“上方”的循环

    【讨论】:

    【解决方案2】:

    我没有使用 django(我使用的是 pylons),但我认为这实际上不是 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 %}
    

    我希望这就是你要找的。​​p>

    最好的,k。

    【讨论】:

    • -1:你不能在 Django 的模板系统中使用任意 Python。
    • 这不是一个“问题”,我只是想知道在 Django 中是否有更简单的方法。显然有。
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2010-10-11
    • 2016-11-20
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多