Django导入模板

时间:2017-12-15 17:51:13

标签: django paginator

我知道如何在功能视图或CBV中进行分页,但这对此没有帮助。

POC模型有一个指向Tag模型的外键。 在Tag详细信息模板中,我想显示指向Tag的所有POC。

{% for poc in tag.poc_set.all|dictsort:"name" %}

问题是有成千上万。我可以在模板中导入Paginator并构建Paginator向构造函数传递tag.poc_set.all(或者"换行" Paginator中的查询集 - 请原谅我的javaspeak)?

2 个答案:

答案 0 :(得分:0)

当然。在您的视图中,将模板传递给页面而不是整个查询集。

https://docs.djangoproject.com/en/2.0/topics/pagination/#module-django.core.paginator

答案 1 :(得分:0)

在视图中处理查询集:

from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

AMOUNT_LISTED_POC = 10 # This determines how many POC that you want to display per page
all_poc = tag.poc_set.all().order_by('name')

page = request.GET.get("page",1)
if page:
    paginator = Paginator(all_poc,AMOUNT_LISTED_POC)
    try:
        all_poc = paginator.page(page)
    except PageNotAnInteger:
        all_poc = paginator.page(1)
    except EmptyPage:
        all_poc = paginator.page(paginator.num_pages)