Django Template - 在for循环中增加模板中变量的值

时间:2014-07-23 13:54:43

标签: python django django-templates

我需要在Django模板中的for循环中显示我正在循环的每个项目的排名。我最初在页面上显示10个项目,每次按下加载更多按钮时再加载10个项目。

我尝试使用{{ forloop.counter }},但仅适用于前10个项目。由于调用涉及AJAX,因此每次添加新项目时,它们的排名都是1-10。

我可以向模板发送rank变量,但我需要一种方法,每次在for循环中将rank变量递增1。这有没有默认的Django过滤器?或者任何人都可以帮我写一个自定义过滤器吗?

感谢。

3 个答案:

答案 0 :(得分:4)

如果您已经有rank整数,则可以使用现有的add过滤器添加计数器:

{{ forloop.counter0|add:rank }}

答案 1 :(得分:2)

我的想法是创建一个用于增加等级的计数器类

class Counter:
    counter = 0    
    def increment(self):
        self.counter += 1
        return self.counter
    def set_to_zero(self):
        self.counter = 0
        return self.counter

并在上下文中传递它。 然后,每次你进入循环,你可以用

递增它
{{ counter.increment }}

答案 2 :(得分:2)

我最后使用添加过滤器梳理了{{ forloop.counter }}rank变量。

{{ forloop.counter|add:rank }}