在寫搜索功能時(shí),對搜索出來的內(nèi)容進(jìn)行分頁,摸索了很久,因?yàn)橐婚_始做分頁功能,就是用的自定義的分頁,沒有用Django使用內(nèi)置paginator類分頁,不過效果還是實(shí)現(xiàn)了


在點(diǎn)擊search后,頁面顯示的搜索內(nèi)容,當(dāng)點(diǎn)擊下一頁的時(shí)候,會(huì)直接跳回到?jīng)]有搜索之前的內(nèi)容,在這里,想了很久,最后用比較笨的方法實(shí)現(xiàn)了分頁功能
至于搜索功能的實(shí)現(xiàn),請參考上篇博文 故障管理系統(tǒng)--select兩級聯(lián)動(dòng)查詢
html.py
#/usr/bin/env python
#_*_coding:utf-8_*_
from django.utils.safestring import mark_safe
"""
自定義分頁類
"""
class PageInfo(object):
def __init__(self,current,totalitems,peritems=2):
self.__current=current
self.__peritems=peritems
self.__totalItme=totalitems
def From(self):
return (self.__current -1)*self.__peritems
def To(self):
return self.__current * self.__peritems
def TotalPage(self):
result=divmod(self.__totalItme,self.__peritems)
if result[1]==0:
return result[0]
else:
return result[0]+1
def Search_Program_page(baseurl,currentPage,totalpage,query,query_platform='test_platform'):
"""
當(dāng)有搜索數(shù)據(jù)提交時(shí),所用分頁方法
"""
perPager = 11
begin = 0
end = 0
if totalpage <= 11:
begin = 0
end = totalpage
else:
if currentPage>5:
#pass
begin = currentPage - 5
end = currentPage + 5
if end >totalpage:
end = totalpage
else:
begin = 0
end = 11
pager_list = []
if currentPage <= 1:
prev = "<li class='disabled'><a href='#'>上一頁</a></li>"
else:
prev = "<li href='%s%d?Program=%s&PlatForm=%s'><a href='%s%d?Program=%s&PlatForm=%s'>上一頁</a></li>" %(baseurl,currentPage-1,query,query_platform,baseurl,currentPage-1,query,query_platform,)
pager_list.append(prev)
for i in range(begin+1,end+1):
if i == currentPage:
temp = "<li class='active'> <a href='%s%d?Program=%s&PlatForm=%s'>%d</a> </li>" %(baseurl,i,query,query_platform,i,)
else:
temp = "<li><a href='%s%d?Program=%s&PlatForm=%s'>%d</a></li>" %(baseurl,i,query,query_platform,i,)
pager_list.append(temp)
print 'temp--->',temp
if currentPage>=totalpage:
next = "<li class='disabled'><a href='#'>下一頁</a></li>"
else:
next = "<li href='%s%d?Program=%s&PlatForm=%s'><a href='%s%d?Program=%s&PlatForm=%s'>下一頁</a></li>" %(baseurl,currentPage+1,query,query_platform,baseurl,currentPage+1,query,query_platform,)
print 'next--->',next
pager_list.append(next)
return mark_safe(''.join(pager_list))def try_int(arg,default): try: arg=int(arg) except Exception,e: arg=default return arg
view視圖中的引用,請參考上篇博文 故障管理系統(tǒng)--select兩級聯(lián)動(dòng)查詢
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享題目:django--兩級聯(lián)查搜索分頁功能-創(chuàng)新互聯(lián)
本文鏈接:http://chinadenli.net/article2/gdpic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容