django 中的分頁器
阿新 • • 發佈:2020-11-01
1:引入django內建的分頁器
from django.core.paginator import Paginator
2:
def get(self,request,page_num): “”“ page_num 指定頁碼 ”“” #模糊搜尋 q = self.get_search_query(["name", "start_time"]) #查詢使用者 if request.path_info == reverse("customer:customer",args=(page_num,)): all_customer=models.Customer.objects.filter(q,user__isnull = True) else: all_customer =models.Customer.objects.filter(q,user=request.user) #建立分頁器 物件,all_customer要分頁的物件,constants.CUSTOMER_LIST_PER_PAGE,每頁的顯示條數 paginator = Paginator(all_customer,constants.CUSTOMER_LIST_PER_PAGE)#獲取指定頁碼的資料 page_customer = paginator.page(page_num) #獲取總頁數 total_page = paginator.num_pages data = { 'page_customer': page_customer, 'page_num': page_num, 'total_page': total_page, } return render(request,"customer.html",data)
3:前端利用jQuery中的分頁器
(1):引入jQuery分頁器相關的包
<link rel="stylesheet" href="/static/css/jquery.pagination.css"> <script type="text/javascript" src="{{ static('js/jquery.pagination.min.js') }}"></script>
(2):準備分頁器標籤
<div class="r_wrap fr clearfix"> <div class="pagenation"> <div id="pagination" class="page"></div> </div> </div>
(3):準備分頁器互動
<script type="text/javascript"> $(function () { $('#pagination').pagination({ currentPage: {{ page_num }}, totalPage: {{ total_page }}, callback:function (current) { // {#location.href = '/list/115/1/?sort=default';#} location.href = '/public/customerList/'+current; } }) }); </script>