python - django 基本分页问题

标签 python django pagination

我有一个微博应用程序,我正在尝试对条目进行分页,例如每页仅显示 10 个条目。 虽然我已经按照教程进行操作,但我的分页似乎不起作用。

列表函数如下所示:

def listing(request):
    blog_list = Blog.objects.all()
    paginator = Paginator(blog_list, 10)
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    try:
        posts = paginator.page(page)
    except (EmptyPage, InvalidPage):
        posts = paginator.page(paginator.num_pages)

    return render_to_response('profile/publicProfile.html', {"posts": posts})

在我的模板中:

    <div class="pagination">
<span class="step-links">
    {% if posts.has_previous %}
        <a href="?page={{ posts.previous_page_number }}">previous</a>
    {% endif %}

    <span class="current">
        Page {{ posts.number }} of {{ posts.paginator.num_pages }}.
    </span>

    {% if object.has_next %}
        <a href="?page={{ posts.next_page_number }}">next</a>
    {% endif %}
</span>

谢谢!

最佳答案

您可以使用 django-pagination这使得无需编写一行 Python 代码就可以实现分页,您只需将所有对象的列表传递给模板(即 blog_list = Blog.objects.all() 在您的情况下),然后在你的模板中使用三个标签:

 {% load pagination_tags %}
 {% autopaginate blog_list 10 %}
 {% paginate %}

关于python - django 基本分页问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973151/

相关文章:

python - 使用 BeautifulSoup 在第一个子标签之前提取文本

python - 从 Amazon Ion 文件中提取 "data"

python - Python GUI 应用程序中类似于 Excel 的用户输入

python - 从列中检索数据 qtablewidget

django verbose_name 不工作

CouchDB 中的分页?

Django 1.4 TimeField 迁移在 PostgreSQL 上失败

html - 在 Django 管理页面中向页脚添加文本

mysql - 选择查询 metamug 的分页

Php Mysql分页