gpt4 book ai didi

django - 鹡鸰中的分页

转载 作者:行者123 更新时间:2023-12-03 23:22:50 25 4
gpt4 key购买 nike

我对 Wagtail 还很陌生,我正在创建一个包含资源(博客)部分的网站,但我不确定如何实现分页,以便每个页面上只有 5 个帖子和用户必须单击一个数字(1、2、3 等)才能转到下一页以查看接下来的 5 个帖子。

我在资源/博客索引页面的分页部分的模板中有这个:

<ul class="pagination">
<li><a href="#"><i class="fa fa-angle-left"></i></a></li>
<li class="active"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#"><i class="fa fa-angle-right"></i></a></li>
</ul>

我需要合并哪些代码才能使其正常工作?提前致谢。

最佳答案

Django 提供模块 django.core.paginator为此目的:https://docs.djangoproject.com/en/1.10/topics/pagination/ .在 Wagtail 中使用它与 Django 文档中的示例非常相似 - 唯一真正的区别是当您设置 Paginator 时要传递给模板的对象,您可以使用 get_context页面模型上的方法,而不是 View 函数。您的模型定义将如下所示:

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

class ResourceIndexPage(Page):
# ...
def get_context(self, request):
context = super(ResourceIndexPage, self).get_context(request)

# Get the full unpaginated listing of resource pages as a queryset -
# replace this with your own query as appropriate
all_resources = ResourcePage.objects.live()

paginator = Paginator(all_resources, 5) # Show 5 resources per page

page = request.GET.get('page')
try:
resources = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
resources = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
resources = paginator.page(paginator.num_pages)

# make the variable 'resources' available on the template
context['resources'] = resources

return context

在您的模板中,您现在可以使用 {% for resource in resources %} 遍历项目。 ,并显示分页链接如下:
<ul class="pagination">
{% if resources.has_previous %}
<li><a href="?page={{ resources.previous_page_number }}"><i class="fa fa-angle-left"></i></a></li>
{% endif %}
{% for page_num in resources.paginator.page_range %}
<li {% if page_num == resources.number %}class="active"{% endif %}><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% endfor %}
{% if resources.has_next %}
<li><a href="?page={{ resources.next_page_number }}"><i class="fa fa-angle-right"></i></a></li>
{% endif %}
</ul>

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com