@Lepilov

Почему начиная со второй страницы пагинации выдает все существующие объекты?

Сделал стандартную пагинацию. Первая страница отображает результаты, число которых ограниченно введенным во вьюхе значением. Но если перейти на любую другую страницу, то отображаются все содержимое, включая предыдущие и последующие.
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 }}">&laquo;</a></li>
    {% else %}
      <li class="page-item disabled"><span class="page-link" >&laquo;</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 }}">&raquo;</a></li>
    {% else %}
      <li class="page-item disabled"><span class="page-link" >&raquo;</span></li>
    {% endif %}
  </ul>
{% endif %}


Если вернуться с любой страницы на первую, то она уже тоже отображает все объекты.
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы