@Mimobike

Как изменить ссылку пагинации?

здравствуйте, есть такое задание -
GET method for getting all messages with pagination by 10 messages per request.
e.g.
/api/messages/list/0 will return first 10 messages
/api/messages/list/1 will return second 10 messages
etc
class MessagePagination(PageNumberPagination):
    page_size = 10
    page_size_query_param = 'page_size'

делаю так пагинацию, но это строит ссылку как /api/messages/?page=
как мне изменить на /api/messages/list/ и начать пагинацию с 0, а не 1
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Возьмите базовый класс пагинации из джанго, отнаследуйтесь в свой кастомный класс пагинации, затем переопределите методы
get_next_link и get_previous_link
переписав на свои. Далее - используйте свой кастомный класс для пагинации.
Ответ написан
Комментировать
akrvch
@akrvch
Можно вроде так:
urls.py
path(“api/messages/list/<int:page_number>“, views.your_view, name=“messages”)

views.py
def your_view(request, page_number)
    messages = Paginator(queryset, 10)
    return render(request, ‘template.html’, {‘messages’: get_page(page_number)})

template.html
<a href=“{% url ‘messages’ messages.next_page_number %}”>next page</a>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы