Я пытаюсь реализовать обработку serverSide для моего jquery данных, и это то, что я отправляю обратно из API:
{
"data": {
"Data": [
{
"automated": false,
"date_added": "2020-01-10T08:55:56",
"dtime": null,
"end_time": null,
"id": 3768,
},
{
"automated": false,
"date_added": "2020-01-10T08:55:56",
"dtime": null,
"end_time": null,
"id": 3769,
},
{
"automated": false,
"date_added": "2020-01-10T08:55:56",
"dtime": null,
"end_time": null,
"id": 3770,
}
],
"recordsFiltered": 166,
"recordsTotal": 166
}
}
Как можно видеть, здесь происходит вложение. Теперь я пытаюсь сделать данные доступными, используя что-то следующим образом:
results_table = $('#results_table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: `/api/v1/projects/results`,
dataSrc: function(json){
data = json.data.Data
recordsTotal = json.data.recordsTotal
recordsFiltered = json.data.recordsFiltered
return data;
}
},
columns: columns,
initComplete: tableInitComplete
});
});
Приведенный выше код просто я пытаюсь каким-то образом заставить 'recordsTotal' и 'recordsFiltered' приступить к работе. Я знаю, что я портю здесь. В результате, на моей веб-странице, хотя я вижу, что строки в таблице данных отображаются правильно, нумерация страниц страдает от проблемы, которая заключается в следующем: моя страница не отображает, сколько записей было выбрано, и говорит: «Показано с 0 по 0 из 0 записей (отфильтрованных по общему количеству записей NaN) и более, моя таблица данных не отображает фиксированное количество номеров страниц. Вместо этого я получаю что-то вроде
[1]->[2]->[3]...[]
Если я нажимаю на последнюю страницу без нумерации напрямую, я получаю ошибку. Если я получаю страницу за страницей, между ними бесконечное количество страниц.
Как мне это исправить? Я изменяю вложенную структуру данных, отправленных от AP? Вот как я создаю отправку данных из API:
results = [row._asdict() for row in results]
result = {
"Data": results,
"recordsTotal" : 166,
"recordsFiltered" : 166
}
Я не понимал, как упаковать данные в правильном формате, поэтому вместо
{
"recordsTotal" : 166,
"recordsFiltered" : 166
"data" : [
{...}.
{...}
]
}
у меня получилось
{
"data": {
"data" : [
{...}.
{...}
],
"recordsTotal" : 166,
"recordsFiltered" : 166
}
}
Если я не хочу изменять данные, возвращаемые из моего API, как мне получить доступ к «recordsTotal» и «recordsFiltered» и использовать их для устранения проблем, с которыми я сталкиваюсь? Спасибо.