Настройка пагинации для класса Listview

Есть два класса для вывода товаров на страницу.:

class Home(ListView):
model = Product
template_name = 'landing/products.html'
context_object_name = 'products'
paginate_by = 12

def get_context_data(self, *, object_list=None, **kwargs):
    context = super().get_context_data(**kwargs)
    context['title'] = 'Товары'
    products = Product.objects.all()
    categories = Category.objects.all()
    context['categories'] = categories
    return context


class ProductsByCategoryView(ListView):
model = Product
context_object_name = 'products'
template_name = 'landing/products.html'
paginate_by = 2

def get_queryset(self):
    self.category = Category.objects.get(pk=self.kwargs['pk'])
    queryset = Product.objects.filter(category=self.category)
    return queryset

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['title'] = 'Товары'
    products = Product.objects.filter(availability=True).order_by('name')
    if self.category:
        sub_categories = self.category.get_descendants(include_self=True)
        products = products.filter(category__in=sub_categories)
    categories = Category.objects.all()
    context['categories'] = categories
    context['products'] = products
    return context

Есть два класса ListView и они выводят товары в шаблон (не понял как сделать вывод товаров по категориям через один класс, но получилось через два. Если есть мысль как превратить это в один аккуратный класс, то рад был бы услышать об этом).

Вопрос в следующем:

1)Через класс Home выводится весь список товаров, добавил в шаблон пагинацию и всё работает. Через класс ProductsByCategoryView выводятся товары в зависимости от того какую категорию выбирают в списке и при этом учитывается вложенность категорий. Добавил пагинацию и она работает только для конечных потомков в категориях, а вложенность, если выбрать коренную категорию не учитывается и там нет пагинации.

2)Пробовал сделать по примеру класса Home, то на пагинация считает каждый товар отдельной страницей, и переходе на страницу присутствуют все товары. Как адекватно настроить пагинацию для вывода по категориям?

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