Пагинация в django не пагинация постов по 6 постов на странице

после написания представления для моей пагинации в django, кнопка работает нормально, то есть они загружают новые страницы, но проблема в том, что все посты остаются на всех новых страницах, а это не то, что ожидалось. views.py

def ElementLists(request):
    vectors = Vectors.objects.filter(status="published").order_by("?")
    paginator = Paginator(vectors, 6)
    page_number = request.GET.get('page')
    vector_paginator = paginator.get_page(page_number)

elementlist.html

<li class="page-item">
   {% if vector_paginator.has_previous %}
      <a class="page-link" href="?page={{vector_paginator.previous_page_number}}" arialabel="Previous">
      <span class="ti-arrow-left">Previous</span>
      <span class="sr-only">Previous</span>
      </a>
   {% endif %}
</li>


<li class="page-item">
   {% if vector_paginator.has_next %}
       <a class="page-link" href="?page={{vector_paginator.next_page_number}}" aria-label="Next">
       <span class="ti-arrow-right">Load More</span>
       <span class="sr-only">Next</span>
       </a>
   {% endif %}
</li>

Вы должны использовать правильный порядок. Сейчас вы используете order_by("?"), что означает случайный порядок записей. Например, ID по убыванию выглядит так:

def ElementLists(request):
    vectors = Vectors.objects.filter(status="published").order_by("-id").all()
    paginator = Paginator(vectors, 6)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    return render(request, 'elementlist.html', {'page_obj': page_obj})

Позже я исправил это. при циклическом переборе ваших постов в шаблоне, теперь это должно выглядеть так

перед

{% for post in posts %}
    ...code here
{% endfor %}

Сейчас

{% for post in posts_paginator %}
    ...code here
{% endfor %}
Вернуться на верх