Pagination in Wagtail

前端 未结 3 762
挽巷
挽巷 2021-02-13 04:01

I\'m fairly new to Wagtail, and I am in the process of creating a site that will have a Resources (blog) section and I\'m not sure how to implement pagination so that there are

3条回答
  •  深忆病人
    2021-02-13 04:19

    I very much appreciate that you got me here - thanks so much for the assist. I had to make some adjustments to make it work. Here's the model if anyone comes across the same issue:

    class NewsIndexPage(Page):
    intro = RichTextField(blank=True)
    
    def get_context(self, request):
        context = super(NewsIndexPage, self).get_context(request)
    
        # Get the full unpaginated listing of resource pages as a queryset -
        # replace this with your own query as appropriate
        blogpages = self.get_children().live().order_by('-first_published_at')
    
        paginator = Paginator(blogpages, 3) # Show 3 resources per page
    
        page = request.GET.get('page')
        try:
            blogpages = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            blogpages = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            blogpages = paginator.page(paginator.num_pages)
    
        # make the variable 'resources' available on the template
        context['blogpages'] = blogpages
    
        return context
    

    ...and here's the HTML:

      {% if blogpages.has_previous %}
    • {% endif %} {% for page_num in blogpages.paginator.page_range %}
    • {{ page_num }}
    • {% endfor %} {% if resources.has_next %}
    • {% endif %}

    It works like a charm - and adds to the learning curve!

提交回复
热议问题