Смещение и ограничение в django rest framework

  • Я установил offset и limit в запросе.

  • вот так.

queryset = Comments.objects.filter(language_post_id=post_in_lang_id, is_post_comment=True).order_by("-created_on")[offset:offset+limit] # 2 : 2 + 2 
  • Все работает нормально, но в ответе пагинации я получаю неправильный счетчик запросов.
{
    "response": true,
    "return_code": "success",
    "result": [
        {
            "id": 36,
            "user_id": 3,
            "language_post_id": 16,
            "is_post_comment": false,
            "parent_post_comment_id": 20,
            "description": "Comment on post in English!!!!",
            "created_on": "2022-09-12T07:44:33",
            " ... "
        },
        {
            "id": 35,
            "user_id": 4,
            "language_post_id": 16,
            "is_post_comment": false,
            "parent_post_comment_id": 20,
            "description": "Comment on post in English!!!!",
            "created_on": "2022-09-12T07:44:32",
            " ... "
        }
    ],
    "message": "Success",
    "next": null,
    "previous": null,
    "count": 2
}
  • но я получил "count": 2 это должно быть количество всех строк.

  • и еще одно сомнение.

  • Я пытаюсь сделать так, чтобы при получении данных query_set каждый раз база данных выполняла запрос в соответствии с лимитом и смещением. Поэтому я сделал это возможным с помощью костюма [offset:limit].

    .
  • выглядит жестко закодированным. Есть ли лучший способ сделать его мягким?

  • Доза DRF пагинации работает так же, как я пытаюсь сделать?

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