django的for循环问题


视图获取到的是所有I对象的列表(总计36个) views.py def index(request): is = I.objects.all() return render(request, 'index.html', locals())

html(页面排版要求,分三列,十二行,每个td一个对象)

{% for i in is %} (第一个) (第二个) (第三个) 继续循环 (第四个) (第五个) (第六个) ……
{{ i.name }}{{ i.name }}{{ i.name }}
{{ i.name }}{{ i.name }}{{ i.name }}
如何实现? (有推荐说在views.py里先每循环三次,封装在一个集合里,然后再继续循环,但问题是如果不是36个,例如35个,最后2个不知道怎么封装进集合。)

问题总结就是,如何控制对象列表的for循环的步长(不是range)。无论在views.py里或者html。只要能实现预期就可以。求指教~~~

  • 1 条回复 | 1 人参与
  • 模板中可以判断循环的次数,例如 {% if forloop.counter0|divisibleby:"3" == 0 %} 即判断已经循环三的倍数次了,然后在这里面做一些事情。see:divisibleby, for

添加一条新回复
登录 或者 注册 后发表回复