отображать только определенные строки в DataTables

Я хотел бы отображать только определенный набор строк в таблицах данных JQuery на основе некоторых условий (запрос/URL-адрес страницы).

Я использую REST API для передачи данных в AJAX. Вот мой полный пример

$(document).ready(function() {
    //datatables
    $('#mytable').DataTable({
      "ajax": "http://127.0.0.1:8000/api/v1/example/?format=datatables",

     "serverSide": true,
     "processing": true,

      "columns": [
          {"data": "col1"},
          {"data": "col2"},
          {"data": "col3"},
      ],

      "dom": "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
             "<'row'<'col-sm-12'tr>>" +
             "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-4'p>>",
    });
} );

Я хотел бы отображать только подмножество строк, например, на основе некоторого условия по col1.

Есть ли способ указать строки, как мы указываем столбцы?


person Marouen    schedule 19.03.2020    source источник
comment
Было бы разумнее фильтровать данные на стороне сервера.   -  person Rory McCrossan    schedule 19.03.2020
comment
Отвечает ли это на ваш вопрос? jQuery DataTables фильтрует строки на основе нескольких значений   -  person PM 77-1    schedule 19.03.2020
comment
@RoryMcCrossan да, фильтрация на стороне сервера с Django работала. Спасибо за вашу помощь. Пожалуйста, добавьте свой ответ, чтобы я мог закрыть вопрос, если это не слишком тривиально.   -  person Marouen    schedule 19.03.2020
comment
Честно говоря, я не чувствую, что ответил на ваш вопрос, поскольку это было просто предложение о том, как лучше всего подойти к проблеме. Если вы хотите, вы можете добавить свой собственный ответ, показывающий код, который вы использовали, что вполне приемлемо.   -  person Rory McCrossan    schedule 19.03.2020


Ответы (1)


Как предложил @RoryMcCrossan, ответ заключается в фильтрации на стороне сервера. Поскольку я использую Django, фильтрацию можно выполнить в файле views.py.

Рендеринг страницы может быть выполнен следующим образом на основе некоторых условий:

def page(request):
    items = Item.objects.all()
    items=items.filter(col1="somecondition")
    return render(request, 'page.html', {'items': items})

В этом случае datatable больше не вызывается из REST API, а напрямую в шаблоне из модели, как описано в models.py

person Marouen    schedule 19.03.2020