我有一个微博应用程序,我正在尝试对条目进行分页,例如每页仅显示 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/