Как сделать пагинацию по месяцам в vue.js?

Я пишу проект на django и vue.js. В vue.js у меня есть следующее:

А в django я написал пагинацию месяца

class MonthlyPagination(PageNumberPagination):
page_size = 10

def paginate_queryset(self, queryset, request, view=None):
    self.months = {}
    for item in queryset:
        month_year = item.start_date.strftime("%Y-%m")
        if month_year not in self.months:
            self.months[month_year] = [item]
        else:
            self.months[month_year].append(item)

    page_number = request.query_params.get(self.page_query_param, 1)
    self.page = page_number
    return self.months.get(page_number, [])

def get_paginated_response(self, data):
    next_page_number = int(self.page) + 1 if int(self.page) < len(self.months) else None
    prev_page_number = int(self.page) - 1 if int(self.page) > 1 else None

    return Response({
        'links': {
            'next': next_page_number,
            'previous': prev_page_number
        },
        'count': sum(len(month) for month in self.months.values()),
        'total_pages': len(self.months),
        'current_page': int(self.page),
        'results': data  
    })

но это не сработало. Как сделать пагинацию записей по месяцам? Мне не важно, сколько записей имеют свой месяц, я просто хочу рассортировать их по месяцам и годам. Например, записи за май 2024 года должны быть на другой странице, а записи за июнь 2024 года.

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