Как я могу постранично вывести список словарей в django

Я работаю над пагинацией в Django и пытаюсь пагинировать мои данные, которые находятся в виде словарей внутри списка, я пробовал подход, основанный на функциях, согласно документации

class MyUserData(TemplateView):
template_name = "myuserdata.html"
form = "userform"

def listing(request):
    contact_list = Contact.objects.all()
    paginator = Paginator(contact_list, 25) # Show 25 contacts per page.

    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    return render(request, 'list.html', {'page_obj': page_obj})

Я пишу вышеуказанную функцию внутри моего класса, который наследуется (TemplateView), теперь проблема в том, что она уменьшает количество результатов до 25, но когда я нажимаю на next, она не показывает следующую страницу

<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>

Поток выглядит следующим образом пользователь приходит и вводит начальную дату и конечную дату и нажимает на submit и получает свою историю данных и проблема в том, что пользователь получает всю свою историю, если он выбирает более длинный диапазон дат, который я хочу постранично отобразить

вот как поступают данные в виде словарей внутри списка

[{'date':'2021/12/02','address':'minneapolis 111 NY','machine':'TR'},{'date':'2021/12/03','address':'minneapolis 111 NY','machine':'MR'},{'date':'2021/12/02','address': 'minneapolis 111 NY','machine':'PR'},{'date':'2021/12/02','address':'minneapolis 111 NY','machine':'CR'},{'date':'2021/12/12','address':'minneapolis 111 NY','machine':'RR'}]

Эти данные поступают из api, а не из моделей django.

Я пробовал подход на основе функций внутри класса, который наследует шаблонный вид возможно ли, что я могу попробовать это внутри класса, согласно документации, если я пишу класс, я должен использовать ListView, возможно ли это в Templateview? Я должен использовать только ListView?

Предположим, что у вас есть список словарей в переменной data:

from django.core.paginator import Paginator

paginator = Paginator(data, 3)
# 3 here is limit number, you can give dynamic value changing it to your required limit number

objects = paginator.page(1)
# 1 here is page number, you can give dynamic value changing it to your required page number

print(list(objects))
# This should print first 3 data as a list
Вернуться на верх