django 自定義分頁功能

2021-09-02 23:53:37 字數 1957 閱讀 9032

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....