django bbs 在模板里这样循环楼层:{{ forloop.counter }}楼,如果遇到分页。第二页又从 1

django bbs 在模板里这样循环楼层:{{ forloop.counter }}楼,如果遇到分页。第二页又从 1 开始计数了。这个有什么好办法解决? 让楼层接下去?

{{ forloop.counter }} 这个可以相加别的操作?

阅读 4.2k
2 个回答

因为模板没有计算功能,如果你必需要使用forloop来实现,那你可能需要使用自定义filter
参考https://segmentfault.com/q/10...

@register.filter
def counter(value, page):
    pagesize = 10
    return (page - 1) * pagesize + value

#模板调用,1表示当前页码
{{ forloop.counter|counter:1 }}

首先,django模板是具备简单计算功能的,add可以做加减法。
用自带过滤器无需自己再写一个。

#模板调用,1表示当前页码(加一个负数等于减法)
{{ forloop.counter|add: -1 }}

另外,如果是后端进行分页的,默认就是重新开始的一个循环,不需要你再做什么处理的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题