Django模板 - 在for循环中增加模板中变量的值
我需要在Django模板中显示一个排名,针对我在for循环中遍历的每个项目。我最开始在页面上显示10个项目,每次点击“加载更多”按钮时再加载10个。
我试过使用 {{ forloop.counter }}
,但这只对前10个项目有效。因为这个过程是通过AJAX进行的,每次新加载的项目的排名都是1到10。
我可以把一个 rank
变量传递给模板,但我需要一种方法,在for循环中每次将这个 rank
变量加1。Django有没有现成的过滤器可以做到这一点?或者有没有人能帮我写一个自定义的过滤器?
谢谢。
3 个回答
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 }}
5
如果你已经有一个叫做 rank
的整数,那你可以直接使用现有的 add
过滤器来加上计数器:
{{ forloop.counter0|add:rank }}
3
我最后把 {{ forloop.counter }}
和 rank
这两个变量结合起来,使用了加法过滤器。
{{ forloop.counter|add:rank }}