django自帶的分頁功能有侷限性,只能顯示所有頁碼,不能顯示當前頁的前五和後五頁的頁碼。所有需要自己寫。
from django.shortcuts import render
class mypaginator:
def __init__(self, cur_page, per_page, total, show_page=11):
try:
self.cur_page = cur_page
except exception as e:
self.cur_page = 1
self.per_page = per_page
self.total = total
self.show_page = show_page
a, b = divmod(int(self.total), self.per_page)#取餘
if b:#如果有餘數
self.total_page = a + 1#在商的結果上加1
else:
self.total_page = a
def start(self):
return (self.cur_page - 1) * self.per_page#顯示開始的頁碼
def end(self):
return self.cur_page * self.per_page#顯示結束的頁碼
def pager(self):
half = int((self.show_page - 1)/2)#當前頁前後顯示的頁碼數
if self.total_page <= self.show_page:#如果總頁數小於等於需要要顯示的頁碼數
begin = 1#頁碼開頭為1
end = self.total_page
else:
if self.cur_page <= half:#如果當前頁小於等於當前頁前後顯示的頁碼數
begin = 1
end = self.cur_page + half
elif self.cur_page + half > self.total_page:
begin = self.cur_page - half
end = self.total_page
else:
begin = self.cur_page - half
end = self.cur_page + half
paginator =
if self.cur_page == 1:#如果當前頁為1
label = "" % (self.cur_page)#標籤為原來標籤不減一
django 自定義分頁
django框架雖然帶有自己的分頁功能,但是樣式不好看,為了做更好看的分頁,需要自定義乙個分頁工具,話不多說擼起袖子就開幹。1.首先先建乙個python檔案叫pager.py 如下 class pagination object page url 翻頁url路由 object list 資料來源列表...
django自定義分頁
django框架雖然帶有自己的分頁功能,但是樣式不好看,為了做更好看的分頁,需要自定義乙個分頁工具,話不多說擼起袖子就開幹。1.首先先建乙個python檔案叫pager.py 如下 class pagination object page url 翻頁url路由 object list 資料來源列表...
django 自定義分頁元件
分頁元件應用 在檢視函式中 queryset models.issues.objects.filter project id project id page object pagination current page request.get.get page all count queryset....