Настройка Django на стороне сервера для пагинации с помощью Datatable

Я использую Django для бэкенда, и я использую библиотеку Datatable для отображения большого количества записей (около 1 миллиона записей). Я пытаюсь настроить datatable таким образом, чтобы каждый раз из бэкенда получалось 25 записей, и когда пользователь нажимает на кнопку следующей страницы, другой вызов ajax получает следующие 25 записей и т.д.

Но у меня возникли проблемы с их установкой.

Моя инициализация DataTable :

$("#company-table").DataTable({
      "processing": true,
      "serverSide": true,
      "bDestroy": true,
      ajax: {
        type: "POST",
        url: "/get_results/",
        headers: {
          "X-CSRFToken": getCookie("csrftoken"),
        },
        data: {
          ...other data params...
          page:$("#company-table").DataTable().page()
        },
      },
      columns: [
        ...populating columns...
      ],
    });

А мой views.py выглядит так (Это совершенно неправильно, насколько я знаю) :

    #filtered_queryset contains all the records.

    paginator = Paginator(filtered_queryset, 25) # Show 25 contacts per page.
    page_number = request.POST.get('page')
    start = request.POST.get('start')
    length = request.POST.get('length')
    page_obj = paginator.get_page(page_number)
    data = list(page_obj.object_list.values())
    return_data = {"data": data}      
    json_data = json.dumps(return_data,indent=4, sort_keys=True, default=str)
    return HttpResponse (json_data, content_type = "application/json")

Может ли кто-нибудь помочь мне? Или просто подтолкнуть меня в правильном направлении?

Попробуйте этот django-ajax-datatable
. Надеюсь, это сработает

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