Настройка 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
.
Надеюсь, это сработает