回答
不知道为什么每个人都如此复杂的事情。如the documentation所示,所有这些属性都已可用。
分页程序对象具有属性count
示出对象的所有页的总数,和Page
对象具有start_index
和end_index
性质。
因此,假设您通过page
到模板的上下文:
{{ page.start_index }} to {{ page.end_index }} of {{ page.paginator.count }}.
totalPages = math.ceil(float(totalRecords)/recordsPerPage)
或
paginatorInstance.num_pages # this is there by default
并不难,是吗?
该django Paginator
对象具有num_pages
属性。在您看来,您只需将正确的数据传递给您的模板并在其中显示即可。
因此,作为一个(粗糙)例如:
视图
current_page = ## input param
items_per_page = 10
paginator = Paginator(result, items_per_page)
...
return render_to_response('template.html',
{
'num_pages': paginator.num_pages,
'start_count': items_per_page * current_page + 1,
'end_count': (items_per_page * current_page + 1) + len(paginator(current_page).object_list)
'items_per_page': items_per_page
}
模板
showing {{start_count} - {{end_count}} of {{num_pages}}
(我写了这个代码,而编译器的好处,因此测试它)
只是发送到分页程序模板,然后访问诸如pagintator属性:{{} offers.previous_page_number},{{offers.next_page_number}}, {{offers.paginator.count}} – gerpaick 2017-11-11 13:41:42
你需要在幕后做些适度更复杂的事情。请注意,虽然我是一个python开发者,但我现在已经使用werkzeug和jinja2很久了,所以我的django语法有点生疏。此外,这是干式编码的(正如我刚才在浏览器中输入的那样),应该进行测试以确保它按预期工作。
通常我会创建一个分页对象,并将其传递给未被页面过滤的查询对象,您还可以告诉它每个页面有多少个页面以及您在哪个页面上。
所以隐约类似于:
Paginator(query, objects_per_page, current_page_number)
再经过所产生的分页程序对象到模板中。
里面的分页程序的初始化你会希望做类似的东西:
def __init__(self, query, objects_per_page, current_page_number):
self.total = query.count()
self.per_page = objects_per_page
self.current_page_number = current_page_number
self.lower_limit = objects_per_page * current_page_number
self.upper_limit = objects_per_page * (current_page_number + 1)
if self.upper_limit > self.total:
self.upper_limit = self.total
self.objects = query[self.lower_limit - 1:self.upper_limit - 1]
然后在模板中你会做这样的事情
Showing {{paginator.lower_limit}}-{{paginator.upper_limit}} of {{paginator.total}}
后来当您准备好迭代可以迭代paginator.objects的对象。
我希望能给你一个关于如何干净地做到这一点的一般想法。
Peharps更好地继承内置的django.core.paginator.Paginator类来添加lower_limit和upper_limit属性。 – webgonewild 2009-11-06 18:38:53
很有可能,我在安静的时候没有用过django。此外,从我坐的位置来看,num_pages似乎是无效的统计数据。 你似乎想要的对象的总数,而不是总页数,但可能有另一个解决方案,但在Django的分页。 – 2009-11-06 18:43:46
- 1. Django分页器页面范围不显示所有数字
- 2. 在Django分页中显示较少的页面
- 3. Django分页不会显示所有页面
- 4. Django博客分页页面
- 5. AngularJS分页只显示一个页面
- 6. 如何分页浏览页面显示?
- 7. cakephp的增加分页页面显示
- 8. 自定义分页算法来计算页面显示
- 9. Django分页显示问题:所有页码显示
- 10. Magento:显示分类列表页面中的页面数量
- 11. Wordpress category.php页面分页显示404页面
- 12. .NET Gridview分页显示以下页面上的不同内容
- 13. 如何在Django分页的JSON响应中显示总页数?
- 14. 显示页面?
- 15. 显示简单的html页面Django
- 16. Django CMS页面标题不显示
- 17. Django manage.py runserver不显示“欢迎页面”
- 18. Django 404页面没有显示
- 19. 分页不显示总页数
- 20. WordPress的 - >显示从子页面定制数据+分页
- 21. php分页 - 我如何限制页面显示数量
- 22. 报告服务:多页面报告 - 显示页面小计
- 23. jQuery倒计时停止页面显示
- 24. 设计的登录页面不显示
- 25. Django中的页面点击计数器
- 26. Django分页View.py中的当前页面
- 27. 分页不显示第二页以后的数据
- 28. 显示从页面
- 29. 此页面显示?
- 30. 显示html页面?
哇!这是我正在寻找的灵魂。谢谢! – webgonewild 2009-11-09 14:12:17
这非常有帮助 - 谢谢。唯一需要注意的是,默认情况下,在ListView中,该对象称为“page_obj”而不是“page”。 – BigglesZX 2016-05-02 07:41:27