Поддерживать категорию трясогузки на всех страницах

На моем сайте Wagtail есть система пагинации, которая отлично работает с обычными постами. Однако я хотел сделать пагинацию категорий постов и не смог этого сделать, он загружает URL "Posts", теряя категорию.

Вы можете увидеть пример здесь, щелкнув страницу 2 https://wizardeo.es/publicaciones/?category=guias

Это код моего шаблона

Это мой models.py

    def get_context(self, request, *args, **kwargs):
        context = super().get_context(request, *args, **kwargs)

        if request.GET.get('category'):

            category_posts = BlogDetailPage.objects.live().public().filter(categories__slug__in=[request.GET.get('category')]).order_by('-first_published_at')
            paginator = Paginator(category_posts, 6)
            page = request.GET.get("page")
            try:
                posts = paginator.page(page)
            except PageNotAnInteger:
                posts = paginator.page(1)
            except EmptyPage:
                posts = paginator.page(paginator.num_pages)

            context["posts"] = posts

        else:
            all_posts = BlogDetailPage.objects.live().public().order_by('-first_published_at')
            paginator = Paginator(all_posts, 6)
            page = request.GET.get("page")
            try:
                posts = paginator.page(page)
            except PageNotAnInteger:
                posts = paginator.page(1)
            except EmptyPage:
                posts = paginator.page(paginator.num_pages)

            context["posts"] = posts
        return context

Спасибо!

Ваш код шаблона не передает параметры фильтра, и поэтому вы теряете категорию. Посмотрите эту статью в блоге и адаптируйте ее под свои нужды: https://www.caktusgroup.com/blog/2018/10/18/filtering-and-pagination-django/#combining-filtering-and-pagination

Вернуться на верх