Используйте Django Paginator
, как описано здесь .
Например, в зависимости от вашего взгляда у вас будет что-то вроде этого:
from django.core.paginator import Paginator
def product_list(request, category_slug=None):
category = None
categories = Category.objects.all()
products = Product.objects.filter(available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = products.filter(category=category)
# Create a paginator to split your products queryset
paginator = Paginator(products, 25) # Show 25 contacts per page
# Get the current page number
page = request.GET.get('page')
# Get the current slice (page) of products
products = paginator.get_page(page)
return render(request,
'shop/product/list.html',
{'category': category,
'categories': categories,
'products': products,
})
Проверкассылка выше, чтобы увидеть, как использовать paginator внутри вашего шаблона, например, для создания ссылок на предыдущие / следующие страницы.