Поддерживать категорию трясогузки на всех страницах
На моем сайте 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