Сделал стандартную пагинацию. Первая страница отображает результаты, число которых ограниченно введенным во вьюхе значением. Но если перейти на любую другую страницу, то отображаются все содержимое, включая предыдущие и последующие.
def viewtrainers(request, slug):
trainers_list = Profile.objects.filter(city__slug = slug)
page = request.GET.get('page')
paginator = Paginator(trainers_list, 10)
try:
trainers = paginator.page(page)
except PageNotAnInteger:
trainers = paginator.page(1)
except EmptyPage:
trainers = paginator.page(paginator.num_pages)
return render(request, "trainers.html", {'trainers':trainers})
templates.html{% if trainers.has_other_pages %}
<ul class="pagination justify-content-center" style="margin:20px 0">
{% if trainers.has_previous %}
<li class="page-item"><a class="page-link" href="?page={{ trainers.previous_page_number }}">«</a></li>
{% else %}
<li class="page-item disabled"><span class="page-link" >«</span></li>
{% endif %}
{% for i in trainers.paginator.page_range %}
{% if trainers.number == i %}
<li class="page-item active"><span class="page-link">{{ i }} <span class="sr-only">(current)</span></span></li>
{% else %}
<li><a class="page-link" href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if trainers.has_next %}
<li class="page-item"><a class="page-link" href="?page={{ trainers.next_page_number }}">»</a></li>
{% else %}
<li class="page-item disabled"><span class="page-link" >»</span></li>
{% endif %}
</ul>
{% endif %}
Если вернуться с любой страницы на первую, то она уже тоже отображает все объекты.