Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Template—在for循环中增加模板中变量的值_Python_Django_Django Templates - Fatal编程技术网

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

Python Django Template—在for循环中增加模板中变量的值,python,django,django-templates,Python,Django,Django Templates,我需要在Django模板中的for循环中显示每个项目的排名。我最初在页面上显示10个项目,每次按下load more按钮时再加载10个项目 我尝试使用{{forloop.counter}},但这只适用于前10项。由于调用涉及AJAX,因此每次添加新项时,它们的排名都在1-10之间 我可以向模板发送一个rank变量,但我需要一个方法,在for循环中每次将rank变量递增1。是否有任何默认的Django过滤器?或者有人能帮我写一个自定义过滤器吗 谢谢。我的想法是创建一个计数器类,您可以使用它来增加排

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

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

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


谢谢。

我的想法是创建一个计数器类,您可以使用它来增加排名

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 }}

如果您已经有一个
整数,只需使用现有筛选器添加计数器:

{{ forloop.counter0|add:rank }}

最后,我使用add过滤器组合了
{{forloop.counter}
rank
变量

{{ forloop.counter|add:rank }}

这就是我刚才想出来的。谢谢。每当我调用{{counter.increment}}@Moritz时,这会将字符串“None”输出到我的模板中,这是因为他忘了返回任何内容