在Paginator中使用“发电机对象分组”。 Django的

时间:2019-08-19 17:22:27

标签: django django-queryset

我在查询集中添加了对对象进行分组的功能。在我的模板中,有必要在对象的每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。是否可以轻松更改代码以保持分组并一起使用分页?

任何帮助将不胜感激。

0 个答案:

没有答案