Django Rest Framweork - Почему первое смещение пагинации начинается с 0 и как изменить его на 1?
Я пытаюсь создать пользовательский Limit и Offset Paginator, но первая страница начинается с нуля, и я не знаю, почему!
Лимит смещения установлен на 1, но внутри url он начинается с 0, то, что я хочу, это начать смещение с 1, который в моем случае является параметром страницы, так что по ?page=1&size=1
я получил второй элемент внутри данных, если я изменю страницу на 0, то он вернет первый элемент, что немного странно!!!
from rest_framework.pagination import LimitOffsetPagination
min_num = 10
max_num = 50
class ApiPagination(LimitOffsetPagination):
default_page = 1
min_limit = min_num
max_limit = max_num
min_offset = min_num
max_offset = max_num
limit_query_param = 'size'
offset_query_param = 'page'
def get_paginated_response(self, data):
next_url = self.get_next_link()
previous_url = self.get_previous_link()
first_url = self.get_first_link()
last_url = self.get_last_link()
return Response(
{
'Data': data,
'Links': {
'Self': first_url,
'Last': last_url,
'First': first_url,
'Next': next_url,
'Prev': previous_url,
},
'Meta': {
'TotalPages': self.count - self.limit if self.offset not in [0, 1] else 1,
'Count': self.count,
}
}
)
def get_first_link(self): pass
def get_last_link(self): pass