Обновить столбцы DataTable после получения данных с сервераPython

Программы на Python
Anonymous
Обновить столбцы DataTable после получения данных с сервера

Сообщение Anonymous »

Мне нужно решение моей проблемы. У меня есть приложение Django, где я использую DataTables с обработкой на стороне сервера, шаблон таблицы является динамическим для всех имеющихся у меня моделей, я просто передаю столбцы (список диктов с данными) , name и title) в контексте шаблона, довольно просто...

Код: Выделить всё

def my_page_view(request):
columns = generate_datatables_columns("MyModel")

return render(
request,
"my_page.html",
{"columns": columns}
)

Код: Выделить всё

$(document).ready(function() {
var columns = [];
{% for col in columns %}
var jsObject = {
{% for key, value in col.items %}
"{{ key }}": "{{ value }}",
{% endfor %}
};
columns.push(jsObject);
{% endfor %}

var table = $('#my-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "/my/url",
"type": "GET",
},
"columns": columns,
});
});





{% for column in columns %}
{{ column.name }}
{% endfor %}



После этого мне нужно было внести некоторые изменения в столбцы, но в зависимости от полученных данных это означает, что я смогу обновить свои столбцы внутри определения DataTable после получения данных. Чтобы прояснить идею, следующий код представляет одну из попыток, которые я предпринял, используя свойство ajax.dataSrc:

Код: Выделить всё

var table = $('#my-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "/my/url",
"type": "GET",
"dataSrc": function (json) {
var data = json.data;
var newColumns = columns;

// make changes on data and newColumns variables with some conditions...

// here should update the datatable columns with the value of newColumns.

return data;
}
},
"columns": columns,
});
С помощью этого метода я не смог найти способ обновить столбцы. Я пробовал и другие способы, такие как использование drawCallback или пользовательскую функцию ajax, но в итоге всегда получалось тупик.
Буду очень благодарен, если кто-нибудь мне в этом поможет.

Подробнее здесь: https://stackoverflow.com/questions/788 ... rom-server

Вернуться в «Python»