Почему не работает пагинатор?

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Делаю пагинатор для проголосовавших. Пока на 1 странице должен вывестись только 1 человек.

view:
Python:
def purple_results(request):
    purple_voters = Choose.objects.filter(count_purple__gte=1)
   
    paginator = Paginator(purple_voters, 1)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    return render(request, 'results/purple_results.html', {'voters': purple_voters, 'page_obj': page_obj})

Шаблон:
HTML:
{% if voters %}
{# код пагинатора #}

<div class="pagination">
    <span class="step-links">
        {% if page_obj.has_previous %}
            <a href="?page=1">&laquo; first</a>
            <a href="?page={{ page_obj.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
        </span>

        {% if page_obj.has_next %}
            <a href="?page={{ page_obj.next_page_number }}">next</a>
            <a href="?page={{ page_obj.paginator.num_pages }}">last &raquo;</a>
        {% endif %}
    </span>
</div>
Однако на странице все так же остаются все проголосовавшие, а не только 1. Почему? Возможно, дело в шаблоне, я его не менял. Код шаблона
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Однако на странице все так же остаются все проголосовавшие, а не только 1. Почему?
Видимо вы в шаблоне выводите всех проголосовавших. Попробуйте вместо voters передать в шаблон page_obj:
Python:
def purple_results(request):
    purple_voters = Choose.objects.filter(count_purple__gte=1)
  
    paginator = Paginator(purple_voters, 1)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    return render(request, 'results/purple_results.html', {'voters': page_obj, 'page_obj': page_obj})
 
  • Мне нравится
Реакции: Domohod45

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Видимо вы в шаблоне выводите всех проголосовавших. Попробуйте вместо voters передать в шаблон page_obj:
Python:
def purple_results(request):
    purple_voters = Choose.objects.filter(count_purple__gte=1)
 
    paginator = Paginator(purple_voters, 1)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    return render(request, 'results/purple_results.html', {'voters': page_obj, 'page_obj': page_obj})
Да, все сработало! Спасибо.
 

Форум IT Специалистов