Во-первых, вы можете преобразовать параметр page
в int
:
page_number = int(page_number)
Затем вы все равно передаете исходный набор запросов в свой шаблон. Чтобы передать список объектов, разбитый на страницы, выполните:
return render(request, 'index.html', {'products': page_obj.object_list})
Или, что еще более полезно, передайте объект страницы:
return render(request, 'index.html', {'page_obj': page_obj})
Таким образом, у вас есть вся информация для доступа к списку объектов, но и для создания следующей и предыдущей ссылки.
Еще удобнее, вы можете использовать класс ListView
:
class HomeView(ListView):
model = Product
paginate_by = 6
context_object_name = 'products'
template_name = 'index.html'
Если вы просматриваете код, вам даже не придется переопределять ни одно из значений по умолчанию поведение, чтобы вы могли напрямую использовать ListView
в вас urls
:
urlpatterns = [
# ...
path('', ListView.as_view(model=Product,
paginate_by=6,
context_object_name='products',
template_name='index.html'), name='index')
# ...
]