Djangoのページャテンプレート

ページテンプレート:

 

クラスページネーション(オブジェクト):
     DEF  __init__(セルフ、CURRENT_PAGE、ALL_COUNTあり、per_page_num = 2、pager_count = 11。 ):
         "" " 
        パッケージ]タブのデータ
        :のparam CURRENT_PAGE:このページ
        :のparam all_count:データベース内のストライプの総数
        :PARAMページ当たりのデータ数が表示されますper_page_num 
        :PARAM pager_count:表示されたページ数までの
        
        使用:
        クエリセット= model.objects.all()
        page_obj =ページ区切り(CURRENT_PAGE、ALL_COUNTある)
        page_data =クエリセット[page_obj.start:page_obj.end] 
        データを取得する代わりに、元のpage_dataを使用すると、クエリセット
        page_obj.page_htmlとフロントタブのスタイルを取得
        "「」
        試してみる
            CURRENT_PAGE =INT(CURRENT_PAGE)
         以外Eとして例外:
            CURRENT_PAGE = 1 であれば CURRENT_PAGE <1 
            CURRENT_PAGE = 1 
        self.current_page = CURRENT_PAGE 
        self.all_count = all_count 
        self.per_page_num = per_page_num 总页码 
        all_pager、TMP = divmod(all_count、per_page_num)
         場合TMP :
            all_pager + = 1 
        self.all_pager = all_pager 
        self.pager_count = pager_count

        




        

        self.pager_count_half = INT((pager_count - 1)/ 2。 

    @Property 
    DEF スタート(セルフ):
         リターン(。self.current_page - 1)* self.per_page_num 

    @Property 
    DEF エンド(自己):
         戻り self.current_page * self.per_page_num 

    DEFのpage_html(セルフ):
        もし総P <11:
        IF self.all_pager <= self.pager_count:
            pager_start。= 1 
            pager_end。= self.all_pager 1 +
         総P> 11。
        このページのアップの場合<=ページページ番号を表示する11月2日
            もし <= self.current_page :self.pager_count_half 
                pager_start = 1 
                pager_end = self.pager_count + 1 当前页大于5 页码翻到最后場合(self.current_page + self.pager_count_half)> self.all_pager:
                    pager_end =自己.all_pager + 1 
                    pager_start = self.all_pager - self.pager_count + 1
                 
                    pager_start = self.current_page - self.pager_count_half 
                    pager_end

            
            
                = self.current_page + self.pager_count_half + 1 

        page_html_list = []
        添加前面的NAV和UL标签 
        page_html_list.append(''」
                    <NAV ARIA-ラベル= 'ページナビゲーション>' 
                    <ULクラスは、= 'ページネーション'> 
                '' ' 
        FIRST_PAGE = ' <LI> <a href="?page=%s">首页</a>に</ LI> '%(1 
        page_html_list.append(FIRST_PAGE)

        場合 self.current_page <= 1 
            PREV_PAGE = <LIクラス= "無効"> <HREF =」#「>前の</a>の</ LI> 
        
            PREV_PAGE= ' <LI> <a href="?page=%s">上一页</a>に</ LI> '%(self.current_page - 1 

        page_html_list.append(PREV_PAGE)

         I における範囲(pager_start 、pager_end):
             もし I == self.current_page:
                TEMP = ' <LIクラス= "アクティブ"> <a href="?page=%s">%S </a>の</ LI> '(I、 I、)
             それ以外
                温度 = ' <LI> <a href="?page=%s">%sの</a>の</ LI> '(I、I、) 
            page_html_list.append(TEMP)

        場合self.current_page> = self.all_pager:
            にnext_page = ' <LIクラス= "無効"> <a href="#">下一页する</a>ます。</ li> ' 
        
            にnext_page = " <LI> <A HREF = "?ページ=%S">下一页</a>の</ LI> '%(self.current_page + 1 
        page_html_list.append(にnext_page)

        LAST_PAGE = ' <LI> <HREF = "?ページ=%S ">尾页</a>の</ LI> '(self.all_pager)
        page_html_list.append(LAST_PAGE) 
        尾部添加标签 
        page_html_list。(アペンド''」
                                           </ NAV>
                                           </ UL> 
                                       ''」リターン '' .join(page_html_list)

 

おすすめ

転載: www.cnblogs.com/xt12321/p/11025055.html