1

I use DataTables with serverSide render.

<script> $(document).ready( function () { $('#myTable').DataTable({ "processing": true, "serverSide": true, "ajax": "{% url 'core:persons_json' %}", "columns": [ {"data": "full_name"}, {"data": "email"}, ] }); }); </script> 

In my views.py i have:

def persons_json(request): persons = Person.objects.all() data = [item.to_dict_json() for item in persons] page = 1 per_page = 10 res = { 'data': data, 'page': page, 'per_page': per_page, 'total': math.ceil(persons.count() / per_page) } return JsonResponse(res) 

But still he still returns all the persons. And I want to avoid loading a lot of data.

But when i define, for example:

def persons_json(request): length = int(request.GET.get('length')) persons = Person.objects.all()[:length] data = [item.to_dict_json() for item in persons] page = 1 per_page = 10 res = { 'data': data, 'page': page, 'per_page': per_page, 'total': math.ceil(persons.count() / per_page) } return JsonResponse(res) 

length = int(request.GET.get('length')) is parameter send by serverSide:

http://localhost:8000/person/json/?draw=1&columns%5B0%5D%5Bdata%5D=full_name&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=email&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1568072064631 

Note that we have: start=0&length=10.

My question is as follows: when I use this second option. The pagination of other items does not appear in DataTables, ie

I wanted it here

enter image description here

but only one page appears.

Does anyone know how I do to return all pages, and I go clicking each to advance the pages?

1 Answer 1

2

I resolve. DataTable send start and length. And API need return recordsTotal and recordsFiltered.

https://github.com/rg3915/django-datatables-experiment/issues/1

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.