国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

對比分析Django的Q查詢及AngularJS的Datatables分頁插件

2019-11-19 17:42:20
字體:
來源:轉載
供稿:網友

使用Q查詢,首先要導入Q模塊:

from django.db.models import Q

可以組合使用&,|操作符用于多個Q的對象,產生一個新的Q對象,Q對象也可以用~操作符放在前面表示否定,如下例所示:

if search:   keywords_list = search.split(' ')   query_list = [Q(status__icontains=get_success_fail_status(keyword)) if get_success_fail_keyword_status(keyword) else       Q(username__icontains=keyword) |       Q(groupid__icontains=keyword) |       Q(status_active_vs__icontains=keyword) |       Q(orders_created_time__icontains=keyword) |       Q(status_bind__icontains=keyword) |       Q(status_active_Bind__icontains=keyword) |       Q(env__icontains=keyword) for keyword in keywords_list]   q = Q()   for query in query_list:    q.add(query, Q.AND) #把query添加到之前定義的最外層的Q對象中,查詢條件是 '和'

其中Q查詢里面的 __icontains 表示包含的關系,用于模糊查詢,如:

Q(username__icontains=keyword) | Q(groupid__icontains=keyword) 表示查詢 username或者 groupid

再談談AngularJS的Datatables分頁插件:

Datatables的主要功能是分頁、即時搜索和排序,雖然django自帶的模板引擎也有分頁功能(Paginator),但無論從功能上還是美觀上,Datatables都更好。

Datatables的效果如下圖所示:

下面講一下Datatables的DTOptionsBuilder方法:

DTOptionsBuilder.newOptions是AngularJS的datatables的一個重要的方法,.newOptions用于實現前后端分頁,

DTOptionsBuilder.newOptions() .withOption('ajax', {  url: "/api/other/get_http_https_apply/",  type: 'GET' }) .withDataProp('data') .withOption('serverSide', true) .withPaginationType('full_numbers') .withOption('createdRow', createdRow) .withOption('order', [  [0, 'desc'] ]);

'serverSide', true 表示開啟服務器模式,

ajax表示數據的來源(包括處理分頁,排序,過濾),

full_numbers表示所有的數據,

http_https.dtColumns = [  DTColumnBuilder.newColumn('id').withTitle('ID'),  DTColumnBuilder.newColumn('username').withTitle('申請人'),  DTColumnBuilder.newColumn('env').withTitle('環境'),  DTColumnBuilder.newColumn('groupid').withTitle('group_id'),  DTColumnBuilder.newColumn('status_active_vs').withTitle('激活vs').renderWith(apply_status),  DTColumnBuilder.newColumn('status_bind').withTitle('綁定').renderWith(apply_status),  DTColumnBuilder.newColumn('status_active_Bind').withTitle('激活綁定').renderWith(apply_status),  DTColumnBuilder.newColumn('status').withTitle('最終結果').renderWith(apply_status),  DTColumnBuilder.newColumn('orders_created_time').withTitle('時間') ]; //判斷是否是admin用戶,如果是admin,則在http_https.dtColumns這個數組中增加(push)一個元素 if (http_https.js_admin) {  http_https.dtColumns.push(DTColumnBuilder.newColumn(null).renderWith(actionsHtml).withTitle('Actions')) }

DTColumnBuilder.newColumn表示新增表格的列

.renderWith對數據進行渲染  這里apply_status是我自己寫的一個函數,用于轉換json中True和False對應的html中的“成功、失敗”

部分詳情代碼請見我的github:https://github.com/a342058040/Django_AngularJS_Datatables.git

以上所述是小編給大家介紹的對比分析Django的Q查詢及AngularJS的Datatables分頁插件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安溪县| 景洪市| 措勤县| 潞城市| 扶沟县| 西盟| 玉龙| 山西省| 桂平市| 九龙城区| 闽清县| 贵南县| 新和县| 红原县| 太仆寺旗| 大方县| 万全县| 吉林省| 青岛市| 项城市| 宽城| 葵青区| 绥德县| 普安县| 东辽县| 财经| 饶平县| 梨树县| 大关县| 怀集县| 黄骅市| 永春县| 子长县| 嘉定区| 湄潭县| 聂荣县| 大渡口区| 新河县| 克什克腾旗| 弥渡县| 兖州市|