Как сделать пагинацию по месяцам в 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 года.