django 使用datatables的服務(wù)器模式

需要在url中配置路由,/work/list/指向到work_list

JS代碼:

 $(document).ready(function() {

    $("#dataTables-example").dataTable(
        {
            // 開啟服務(wù)器模式
            "serverSide": true,
            // 開啟處理功能
            "processing" : true,
            // 允許排序
            "orderable":true,
            // 允許查詢
            "searching" : true,
             // 根據(jù)第四列降序排列
            "order": [[ 3, "desc" ]],
            // 發(fā)送post請(qǐng)求
            "ajax":{
                "type": 'POST' ,
                "url": '/work/list/'
            },
            // 返回?cái)?shù)據(jù)
            columns: [
                { "data": "name",
                    // 數(shù)據(jù)渲染尤误,返回超鏈接的字條
                    "render": function ( data, type, full, meta ) {
                        return '<a href="/work/work_results?name='+data+'" ><span>'+data+'</span></a>';
                }
                },
                { "data": "user" },
                { "data": "fun" },
                { "data": "start_time" },
                { "data": "end_time" },
                { "data": "sum_time" },
                { "data": "status",
                    // 數(shù)據(jù)渲染,判斷返回內(nèi)容岔绸,返回span顏色
                    "render": function (data, type, full, meta) {
                        if (data == '執(zhí)行成功') {
                            return '<span class="label label-success">' + data + '</span>';
                        }
                        else if (data == '執(zhí)行失敗') {
                            return '<span class="label label-danger">' + data + '</span>';
                        }
                        else if (data == '執(zhí)行中') {
                            return '<span class="label label-warning">' + data + '</span>';
                        }
                        else {
                            return '<span class="label label-primary">' + data + '</span>';
                        }
                    }}
            ],
            'columnDefs': [{
                'targets': 0,
                'searchable': true
        }]

        }

    );
});

    
  $("form").submit(function(e){
    e.preventDefault();
    table = $("#dataTables-example").DataTable();
    table.ajax.reload();
});

國(guó)際化

$(function() {
    var oLanguage = {
        "oAria": {
            "sSortAscending": ": 升序排列",
            "sSortDescending": ": 降序排列"
        },
        "oPaginate": {
            "sFirst": "首頁(yè)",
            "sLast": "末頁(yè)",
            "sNext": "下頁(yè)",
            "sPrevious": "上頁(yè)"
        },
        "sEmptyTable": "沒有相關(guān)記錄",
        "sInfo": "第 _START_ 到 _END_ 條記錄,共 _TOTAL_ 條",
        "sInfoEmpty": "第 0 到 0 條記錄越妈,共 0 條",
        "sInfoFiltered": "(從 _MAX_ 條記錄中檢索)",
        "sInfoPostFix": "",
        "sDecimal": "",
        "sThousands": ",",
        "sLengthMenu": "每頁(yè)顯示條數(shù): _MENU_",
        "sLoadingRecords": "正在載入...",
        "sProcessing": "正在載入...",
        "sSearch": "",
        "sSearchPlaceholder": "",
        "sUrl": "",
        "sZeroRecords": "沒有相關(guān)記錄"
    }
    $.fn.dataTable.defaults.oLanguage = oLanguage;
});

table表代碼

<table class="table table-striped table-hover" id="dataTables-example">
    <colgroup>
        <col style="width:8%">
        <col style="width:4%;">
        <col style="width:2%;">
        <col style="width:6%;">
        <col style="width:4%;">
        <col style="width:4%;">
        <col style="width:4%;">
    </colgroup>
    <thead>
        <tr>
            <th>作業(yè)名稱</th>
            <th>執(zhí)行人</th>
            <th>執(zhí)行方式</th>
            <th>開始時(shí)間</th>
            <th>結(jié)束時(shí)間</th>
            <th>總耗時(shí)</th>
            <th>作業(yè)狀態(tài)</th>
        </tr>
   </thead>
   <tbody>
   </tbody>
</table>

后端代碼:

def work_list(request):
    from django.db.models import Q
    if request.method == "POST":
        # 獲取所有數(shù)據(jù)
    all_result = running_list.objects.all().order_by("-start_time")
        # 數(shù)據(jù)條數(shù)
    recordsTotal = all_result.count()
    recordsFiltered = recordsTotal
        # 第一條數(shù)據(jù)的起始位置
    start = int(request.POST['start'])
        # 每頁(yè)顯示的長(zhǎng)度泪勒,默認(rèn)為10
    length = int(request.POST['length'])
        # 計(jì)數(shù)器跌前,確保ajax從服務(wù)器返回是對(duì)應(yīng)的
    draw = int(request.POST['draw'])
        # 全局收索條件
    new_search = request.POST['search[value]']
        # 排序列的序號(hào)
    new_order= request.POST['order[0][column]']
        # 排序列名
    by_name = request.POST['columns[{0}][data]'.format(new_order)]
        # 排序類型棕兼,升序降序
    fun_order = request.POST['order[0][dir]']
        # 排序開啟,匹配表格列
    if by_name:
            if fun_order == "asc":
                all_result = all_result.order_by(by_name)
            else:
                all_result = all_result.order_by("-{0}".format(by_name))
        # 模糊查詢抵乓,包含內(nèi)容就查詢
    if new_search:                
        all_result = all_result.filter(Q(user__contains= new_search) | Q(fun__contains=new_search) |
                   Q(start_time__contains=new_search) | Q(end_time__contains=new_search) |
                   Q(sum_time__contains=new_search) | Q(status__contains=new_search))
        # 獲取首頁(yè)的數(shù)據(jù)
    datas = all_result[start:(start+length)]
        # 轉(zhuǎn)為字典
    resp = [obj.as_dict() for obj in datas]

        #返回計(jì)數(shù)伴挚,總條數(shù),返回?cái)?shù)據(jù)
    result = {
        'draw': draw,
        'recordsTotal': recordsTotal,
        'recordsFiltered': recordsFiltered,
        'data': resp,
        }
   return HttpResponse(json.dumps(result), content_type="application/json")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灾炭,一起剝皮案震驚了整個(gè)濱河市茎芋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜈出,老刑警劉巖田弥,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異铡原,居然都是意外死亡偷厦,警方通過查閱死者的電腦和手機(jī)商叹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來只泼,“玉大人剖笙,你說我怎么就攤上這事∏氤” “怎么了弥咪?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)十绑。 經(jīng)常有香客問我聚至,道長(zhǎng),這世上最難降的妖魔是什么本橙? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任扳躬,我火速辦了婚禮,結(jié)果婚禮上勋功,老公的妹妹穿的比我還像新娘坦报。我一直安慰自己库说,他們只是感情好狂鞋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著潜的,像睡著了一般骚揍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啰挪,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天信不,我揣著相機(jī)與錄音,去河邊找鬼亡呵。 笑死抽活,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锰什。 我是一名探鬼主播下硕,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼汁胆!你這毒婦竟也來了梭姓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤嫩码,失蹤者是張志新(化名)和其女友劉穎誉尖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铸题,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铡恕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年琢感,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片探熔。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猩谊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祭刚,到底是詐尸還是另有隱情牌捷,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布涡驮,位于F島的核電站暗甥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏捉捅。R本人自食惡果不足惜撤防,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棒口。 院中可真熱鬧寄月,春花似錦、人聲如沸无牵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茎毁。三九已至克懊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間七蜘,已是汗流浹背谭溉。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橡卤,地道東北人扮念。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像碧库,于是被迫代替她去往敵國(guó)和親柜与。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器礼华,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 如果,我能從頭再來粘茄,我希望從很小很小的時(shí)候開始,做個(gè)乖寶寶,聽爸媽的話柒瓣,好好學(xué)習(xí)儒搭,天天向上。 我希望芙贫,我能變得大膽...
    八月未央夜閱讀 99評(píng)論 0 0
  • “鮑師傅現(xiàn)貨要不要搂鲫?現(xiàn)貨免排隊(duì)呦!”晚上九點(diǎn)的上海人民廣場(chǎng)附近磺平,還有拎著食品袋子的人向路邊的顧客招徠生意魂仍。 “網(wǎng)紅...
    補(bǔ)習(xí)club閱讀 158評(píng)論 0 1
  • 泥萌有沒有經(jīng)歷過 減肥減著減著就再也減不下去了 然后就放棄啦這樣的事情呢 其實(shí)減肥減著減著再也減不下去是正巢磷茫現(xiàn)象 ...
    RonaldMcDonald閱讀 1,013評(píng)論 0 4
  • (一)透過她的眼,看見你菠劝。 9月 赊舶, 我踏進(jìn)了這所校園 。沒有歡喜 亦無憂愁 可后來的后來我在這里的一切都變得不...
    月三歲閱讀 648評(píng)論 0 0