Я настроил обработку данных на стороне сервера. На стороне сервера я использую python3
и mongodb
.
Я думаю, что моя логика подкачки c хороша, как вы можете видеть из кода:
PYTHON:
@bp.route('/_ajax_products', methods=['GET', 'POST'])
@login_required
def ajax_products():
num = int(request.args.get('page_num')) + 1
total_items = product_db.count()
items_to_show = 100
result = {"draw": num, "recordsTotal": total_items, "recordsFiltered": total_items}
list_prod = product_db.find().sort([("Code", 1)]).skip(items_to_show * (num - 1)).limit(items_to_show)
final_list = []
for i in list_prod:
# iteration on products and addition to the final list
result['data'] = final_list
return jsonify(result)
Инициализация данных :
$('#ProductsList').DataTable({
"dom": 'Brlf<t><"clear">p',
"pageLength": 100,
select: true,
"processing": true,
"serverSide": true,
"ajax": {
url:"/_ajax_products",
data: function ( d ) {
var datatable = $('#ProductsList').DataTable();
var currentPage = datatable.page.info().page;
d.page_num = currentPage;
}
},
"columns":[...]
...
})
Данные хорошо загружаются в мои данные. Когда я вызываю следующую страницу, либо проблем нет.
Проблема появляется, когда я звоню на предыдущую страницу .
Отображение начинается на стр. 1 . когда я нажимаю, например, кнопку нумерации страниц 3 , я вижу в консоли:
"GET /_ajax_products?draw=3&
Но когда я пытаюсь go вернуться на страницу 1, параметр рисования переходит к 4:
"GET /_ajax_products?draw=4&
... и продолжает увеличиваться.
На стороне сервера хорошие данные найдены, но они не отображаются в таблице данных. Как я могу решить эту проблему?