Вынесение процессе пагинации в отдельный метод в проекте Django
Есть три функции:
def index(request):
"""Выводит шаблон главной страницы"""
post_list = Post.objects.all()
paginator = Paginator(post_list, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
context = {
'page_obj': page_obj
}
return render(request, 'posts/index.html', context)
def group_posts(request, slug):
"""Выводит шаблон с группами постов"""
group = get_object_or_404(Group, slug=slug)
paginator = Paginator(group.posts.all(), 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
posts = group.posts.all()[:10]
context = {
'group': group,
'paginator': paginator,
'page_number': page_number,
'page_obj': page_obj,
'posts': posts,
}
return render(request, 'posts/group_list.html', context)
def profile(request, username):
"""Выводит шаблон профайла пользователя"""
author = get_object_or_404(User, username=username)
paginator = Paginator(author.posts.all(), 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
context = {
'author': author,
'paginator': paginator,
'page_number': page_number,
'page_obj': page_obj,
}
return render(request, 'posts/profile.html', context)
В каждой из трех функций повторяется одна и та же строка кода: page_obj = paginator.get_page(page_number).
Мой ревьювер сказал, что нужно процесс пагинации вынести в отдельный метод, т.к. идет частое повторение одного и того же.
Подскажите, как правильно вынести эту строку в отдельный метод, а потом применить в функциях так, чтобы все не сломалось? :)