我尝试使用datatables:服务器端处理
我有一个观点:
class DataList(generics.ListAPIView):
queryset = Data.objects.all()
serializer_class = DataSerializer
以及我的html:
$(document).ready(function() {
$('#example').dataTable( {
"processing": true,
/* serverSide:true */
"deferRender": true,
"iDisplayLength": 25,
"paging": true,
ajax: {
url: 'http://127.0.0.1:8000/api/datas/',
dataSrc: ''
},
columns: [
{ "data": "id"},
{ "data": "name"},
{ "data": "update_time"},
{ "data": "description"},
]
});
})
这很有效。
然后我注释掉serverSide:true
:
$(document).ready(function() {
$('#example').dataTable( {
"processing": true,
"serverSide": true,
"deferRender": true,
"iDisplayLength": 25,
"paging": true,
ajax: {
url: 'http://127.0.0.1:8000/api/datas/',
dataSrc: ''
},
columns: [
{ "data": "id"},
{ "data": "name"},
{ "data": "update_time"},
{ "data": "description"},
]
});
})
paginator
和search
和ordering
不再工作
它似乎查询所有数据。
我看到datatable示例是用php编写的。
我想将datatable与django rest框架集成,我还应该设置什么??
在您的视图中,您将返回queryset中的所有元素。
您可以使用ajax请求中给定的值来分割结果。 Datatables为ajax请求提供了start和length值,您可以使用这些值来获取返回分页的正确集合。例如:
注意,为了使分页正常工作,Datatables需要server-side processing的其他值,例如recordsTotal和recordsFiltered
首先,阅读一些关于数据表的服务器端处理的文档:https://datatables.net/manual/server-side。它将告诉您datatable发送到后端的内容以及它想要返回的内容。只需提供所需的参数。
那么让我给你看一些我作品中的代码。这不是完整的示例,但是您将知道如何传递回
datatable()
函数。一些常量:
Python代码的主要部分:
请再次注意,这不是一个完整的例子,你应该扩展到你自己的要求。
相关问题 更多 >
编程相关推荐