【问题标题】:Django Server Side set-up for pagination with Datatable使用 Datatable 进行分页的 Django 服务器端设置
【发布时间】:2021-12-27 08:33:02
【问题描述】:

我使用 Django 作为后端,我使用 Datatable 库来显示大量记录(大约 100 万条记录)。我正在尝试以这样的方式设置数据表 每次从后端获取 25 条记录并且当用户单击下一页按钮时,另一个 ajax 调用会获取接下来的 25 条记录,依此类推。

但我无法设置这些。

我的数据表初始化:

$("#company-table").DataTable({
      "processing": true,
      "serverSide": true,
      "bDestroy": true,
      ajax: {
        type: "POST",
        url: "/get_results/",
        headers: {
          "X-CSRFToken": getCookie("csrftoken"),
        },
        data: {
          ...other data params...
          page:$("#company-table").DataTable().page()
        },
      },
      columns: [
        ...populating columns...
      ],
    });

我的 views.py 看起来像这样(据我所知,这是完全错误的):

    #filtered_queryset contains all the records.

    paginator = Paginator(filtered_queryset, 25) # Show 25 contacts per page.
    page_number = request.POST.get('page')
    start = request.POST.get('start')
    length = request.POST.get('length')
    page_obj = paginator.get_page(page_number)
    data = list(page_obj.object_list.values())
    return_data = {"data": data}      
    json_data = json.dumps(return_data,indent=4, sort_keys=True, default=str)
    return HttpResponse (json_data, content_type = "application/json")

谁能帮帮我?还是只是将我推向正确的方向?

【问题讨论】:

    标签: django datatable pagination


    【解决方案1】:

    试试这个django-ajax-datatable
    我希望这会奏效

    【讨论】:

    • 请尽量不要提供仅链接的答案。请尽量确保答案是独立的,这样如果链接不可用,您的答案仍然有用。这并不意味着您应该将链接的全部内容复制/粘贴到答案中 - 相反,您应该提供清晰简洁的摘要来回答特定问题。 (您仍应向我们展示您在答案中提供的信息的来源。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2015-06-12
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多