我在查询集中添加了对对象进行分组的功能。在我的模板中,有必要在对象的每3次出现中添加<ul>
。我在模板中的代码如下。
{% for group in groups %}
<ul>
{% for object in group %}
<li>{{ object }}</li>
{% endfor %}
</ul>
{% endfor %}
我的 views.py (查询集和函数)
def grouped(l, n):
for i in range(0, len(l), n):
yield l[i:i+n]
groups = grouped(City.objects.all(), 3)
现在尝试在我的 views.py
中添加Paginator
# paginator
page = request.GET.get('page', 1)
paginator = Paginator(groups, 5)
try:
objects = paginator.page(page)
except PageNotAnInteger:
objects = paginator.page(1)
except EmptyPage:
objects = paginator.page(paginator.num_pages)
,它返回以下错误(在我的模板中):
object of type 'generator' has no len()
如何在generator object grouped
中使用Paginator
。是否可以轻松更改代码以保持分组并一起使用分页?
任何帮助将不胜感激。