DJango的服务端分页

    <>

    安装

    django-datatables-view

    pip安装django-datatables-view

    <李>

    前端配置js部分


    $ (' # mytable) .DataTable ({

    ,,“分页”:真的,

    ,,“lengthChange”:真的,

    ,,“搜索”:真的,

    ,,“命令”:真的,

    ,,“信息”:真的,

    ,,“autoWidth”:真的,

    ,,50100年“lengthMenu”:[[20日,1],[20,50100,“所有”]],

    ,,:“sPaginationType full_numbers”,

    ,,“bProcessing”:真的,//开启读取服务器数据时显示正在加载中……特别是大数据量的时候,开启此功能比较好

    ,,“bServerSide”:真的,//开启服务器模式,

    ,,:“sAjaxSource {% url的proxy_list_json %} ",//给服务器发请求的url


    ,李});

    <李>

    django后台响应部分从django_datatables_view

    。base_datatable_view进口BaseDatatableView

    def proxyAdmin(点播):

    ,,#行=Proxy.objects.all () (100):

    ,,返回render_to_response(数据/proxyadmin.html)


    类ProxyListJson (BaseDatatableView):

    ,,#模型我们将展示

    ,,代理模型=#要分页的类


    ,,#定义的列将返回

    ,,列=(“知识产权”、“描述”,“分”,“logdate”】#需要显示的字段


    ,,#定义列名,将用于排序的

    ,,#顺序是一样重要的,应该顺序列

    ,,#在datatable中显示。非可排序的列使用空

    ,,#价值像”

    ,,order_columns=(“知识产权”、“描述”,“分”,“logdate”】#排序


    ,,#设置最大限制返回的记录,这是用来保护我们的网站如果有人试图攻击我们的网站

    ,,#,让它返回大量的数据

    ,,max_display_length=500


    ,,def render_column(自我,行、列):

    ,,,,,,返回超级(ProxyListJson自我)。render_column(行、列)


    ,,def filter_queryset(自我,qs):

    ,,,,#使用GET请求中传递的参数来过滤queryset

    ,,,,qs_params=没有

    ,,,,搜索=self.request.GET。得到(u 'sSearch ',没有)

    ,,,,如果搜索:#模糊搜索

    ,,,,,,=(ip__contains=搜索)| q (description__contains=搜索)

    ,,,,,,qs_params=qs_params |如果其他qs_params q

    ,,,,,

    ,,,,,,q=qs.filter (qs_params)


    ,,,,李返回qs

    <李>

    url配置

    url (r ' ^ paging_proxy/$’, ProxyListJson.as_view ()、name=' proxy_list_json '),

DJango的服务端分页