Order_by("-date") некорректно работает с пагинатором

SO у меня более 500 записей и я хочу упорядочить их по дате, это было довольно просто и это работало, но когда я использовал paginator для добавления пагинации, это все испортило, нет никакого смысла в этом упорядочивании прямо сейчас, может кто-нибудь помочь мне понять, что происходит и что мне нужно сделать, чтобы мой order_by() работал.

Вот мое мнение:

if request.method == "GET":
    if request.session["store_year"] == "" and request.session["store_month"] == "":
        request.session["store_year"] = ""
        request.session["store_month"] = ""
        timelineData = Timeline_english.objects.all().order_by("-date")
        timeline_list = []
        timeline_date_list = set()
        for val in timelineData:
            obj = {
                "id": val.id,
                "image": val.image,
                "text": val.text,
                "url": val.url.replace(" ", "-").lower(),
                "date": val.date
            }
            timeline_list.append(obj)
            timeline_date_list.add(str(val.date)[:4])
        page = request.GET.get('page', 1)
        print("page", page)
        paginator = Paginator(timeline_list, 9)
        try:
            timeline_list = paginator.page(page)
        except PageNotAnInteger:
            timeline_list = paginator.page(1)
        except EmptyPage:
            timeline_list = paginator.page(paginator.num_pages)
        print(timeline_list)

        try:
            page_count = math.ceil(timelineData.count()/9)
            page_limit = 3
            page_count_arr = []
            if page_count > page_limit:
                new_pagecount = int(page)+page_limit

            else:
                new_pagecount = page_count

            last_page_number = {
                "mode": "yes" if page_count == int(page) else "no",
                "index": page_count
            }

            if page_count > int(page):
                for i in range(int(page), new_pagecount+1):
                    page_count_arr.append({
                        "mode": "yes" if i == int(page) else "no",
                        "index": i
                    })
                data.update({"quotes_list_pages": page_count_arr})
            else:
                data.update({"quotes_list_pages": page_count_arr})
        except Exception:
            page_count_arr = [{
                "mode": "yes",
                "index": 1
            }]
            data.update({"quotes_list_pages": page_count_arr})

вот что я использую для пагинации:

from django.core.paginator import InvalidPage, Paginator, EmptyPage, PageNotAnInteger

любая помощь будет очень признательна спасибо.

Вернуться на верх