【问题标题】:Django 1.5.4 Python Count a LoopDjango 1.5.4 Python 计数循环
【发布时间】:2014-01-06 03:51:30
【问题描述】:

我正在尝试获取这些循环进入变量的次数。 (我知道它们现在是静态的,但最终它们将基于来自其他地方的数据)。

我知道如何用其他语言做到这一点,但我一生都无法弄清楚如何用 Python / Django 做到这一点。

在 PHP 中,我会在循环中使用 i++ 并仅显示 i 的最终值

Django 1.5.4 Python 2.7

View

def channel(request):
    values = []
    values2 = []
    for i in range(1,11):
    values.append(i)
    for i2 in range(1,6):
    values2.append(i2)

Template

{% for value in values %}
<insert random html here>
    {{ count_of_loop }}
    {% for value2 in values2  %}
    {{ count_of_loop2 }}
    <insert random html here>
    {% endfor %}
{% endfor %}

【问题讨论】:

    标签: python django django-1.5


    【解决方案1】:

    如果你想在模板中使用Counter

    {{ forloop.counter }}
    

    一个例子:

    {% for value in values %}
    {% if forloop.counter == 1 %}
       Do something.
    {% endif %}
    {% endfor %}
    

    【讨论】:

    • 这实际上非常适合我的需要。我只需要重新考虑我是如何处理 HTML 的。谢谢你。我的“做某事”。是 {{ forloop.revcounter }} 以显示计数器在第一次运行时运行的最大次数。
    【解决方案2】:

    可以在模板中使用
    {{forloop.counter}}循环的当前迭代(1-indexed)

    {{forloop.counter0}}循环的当前迭代(0-indexed)

    或者,如果您想在模板中设置范围,请使用 |例如:

    def channel(request):
        range1 = 11
        range2 = 6
    
    
    {% for i in 0|range1 %}  
       {{ forloop.counter }}
          {% for y in 0|range2 %}  
             {{ forloop.counter }}
          {% endfor %}  
    {% endfor %}  
    

    【讨论】:

    • 但我没有在循环中使用 i++(或等效项)。我正在导入一个范围并从视图中执行一个 for 循环。我想我正在寻找的是如何定义value.count
    • @AndrewWilson 我发布了一种更简单的方法来获得你想要的东西。
    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2011-03-10
    • 2017-08-31
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多