django - Django 中的灵活分页

标签 django pagination

我想实现分页,这样我就可以让用户选择每页的记录数,例如 10、25、50 等。我应该怎么做?我可以将应用程序添加到我的项目中来执行此操作吗?

谢谢

最佳答案

Django 在核心中内置了一个 Paginator 对象。这是一个相当简单易用的 API。使用两个参数实例化一个 Paginator 类:列表和每“页”的条目数。我将在底部粘贴一些示例代码。

在您的情况下,您希望允许用户选择每页计数。您可以将每页计数作为 URL 的一部分(即 your/page/10/),也可以将其作为查询字符串(即 your/page/?p=10)。

有点像...

# Assuming you're reading the Query String value ?p=
try:
    per_page = int(request.REQUEST['p'])
except:
    per_page = 25     # default value

paginator = Paginator(objects, per_page)

下面是分页器的 Django 文档页面中的一些示例代码,以便更好地了解它是如何工作的。

>>> from django.core.paginator import Paginator
>>> objects = ['john', 'paul', 'george', 'ringo']
>>> p = Paginator(objects, 2)

>>> p.count
4
>>> p.num_pages
2
>>> p.page_range
[1, 2]

>>> page1 = p.page(1)
>>> page1
<Page 1 of 2>
>>> page1.object_list
['john', 'paul']

关于django - Django 中的灵活分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1729332/

相关文章:

php使用next按钮限制查询pdo

python - Django datetime.timedelta ,如果它们可能是不同的集合,它如何从 timezone.now() 中减去

python - django 将参数从模板传递到 bash 脚本

django - Django,文件对象的get_absolute_url方法

jquery - 分页 - 对搜索引擎可见的用户隐藏

pagination - Magento 1.7 : Remove pagination from top and keep pagination at bottom

python - Django - Django > 1.9 中的 'sqlclear' 等价物

python - 获取表单字段的初始数据

css - 如何避免 HTML 中损坏的主题部分(例如 div)?

php - 使用 PHP 和 MySQL 进行分页?