溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

django--兩級(jí)聯(lián)查搜索分頁(yè)功能

發(fā)布時(shí)間:2020-07-02 15:36:11 來(lái)源:網(wǎng)絡(luò) 閱讀:1964 作者:shouhus 欄目:開發(fā)技術(shù)

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

django--兩級(jí)聯(lián)查搜索分頁(yè)功能

    在點(diǎn)擊search后,頁(yè)面顯示的搜索內(nèi)容,當(dāng)點(diǎn)擊下一頁(yè)的時(shí)候,會(huì)直接跳回到?jīng)]有搜索之前的內(nèi)容,在這里,想了很久,最后用比較笨的方法實(shí)現(xiàn)了分頁(yè)功能

    至于搜索功能的實(shí)現(xiàn),請(qǐng)參考上篇博文 故障管理系統(tǒng)--select兩級(jí)聯(lián)動(dòng)查詢

    html.py

#/usr/bin/env python 
#_*_coding:utf-8_*_
from django.utils.safestring import mark_safe
"""
自定義分頁(yè)類
"""
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í),所用分頁(yè)方法
    """
    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='#'>上一頁(yè)</a></li>"
        
    else:
        prev = "<li href='%s%d?Program=%s&PlatForm=%s'><a href='%s%d?Program=%s&PlatForm=%s'>上一頁(yè)</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='#'>下一頁(yè)</a></li>"   
    else:        
        next = "<li href='%s%d?Program=%s&PlatForm=%s'><a href='%s%d?Program=%s&PlatForm=%s'>下一頁(yè)</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))

gb001.py

def try_int(arg,default):
    
    try:
        arg=int(arg)
    except Exception,e:
        arg=default
    return arg

    view視圖中的引用,請(qǐng)參考上篇博文 故障管理系統(tǒng)--select兩級(jí)聯(lián)動(dòng)查詢


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI