Djangoの改ページとページアップ、ページジャンプあたりの表示タグの拡張ダウン

景色

CustomPaginatorクラス(ページネータ):
DEF __init __(自己、CURRENT_PAGE、per_pager_num、* argsを、** kwargsから):
このページ
self.current_page = INT(CURRENT_PAGE)
ページ数は11まで表示#
self.per_pager_num = INT(per_pager_num)
スーパー(CustomPaginator、自己).__のinit __ (* argsを、** kwargsから)#の継承ページネータオブジェクト、その内部変化しなかった


DEFのpager_num_range(セルフ):
現在のページ
#のself.current_pageの
ページ数は11位まで表示
#self.per_pager_num
#ページ特に
#1 self.num_pages
self.num_pages IF <self.per_pager_num:
(1 ,. 1 + self.num_pages)範囲を返す
#特にページ5。
パート= INT(self.per_pager_num / 2)
self.current_page IF <=パート:
(1 ,. 1 + self.per_pager_num)範囲を返す
IF(パートself.current_page用+)> self.num_pages:
範囲(self.num_pages-self.per_pager_numを返す1 +、+ 1 self.num_pages。 )
レンジ(self.current_pageパート、self.current_page +パート+ 1)を返す

DEFのindex1の(要求を):

すべてのデータ:データのUSER_LIST、=」どのように多くの部分は、全体の取得
#のPER_PAGEを:ページあたりのエントリ数
#数:データ総数
#1 NUM_PAGES:ページ
#1 page_range:インデックス範囲の総ページ数、例えば:(1,10)、(1200)
ページ:ページオブジェクトを(次ページか、前のページがある場合、)
CURRENT_PAGE request.GET.get =( 'P')
#1ページネータオブジェクト
#=ページネータページネータ(USER_LIST、10)
ページネータ= CustomPaginator(CURRENT_PAGE ,. 11、USER_LIST、10)
試してみる:
#ページオブジェクト
こちらの記事= paginator.page(CURRENT_PAGE)#行動スライス
#次があるかどうかをhas_next
次のページnext_page_number#は
どうかそこ#has_previous前
#のprevious_page_number前のページ
データ#1 OBJECT_LISTページの後リスト、優れたスライスデータの持つ
現在のページの#番号
#のページネータのページネータオブジェクトを
PageNotAnInteger除い:#は、塗りつぶしを表す整数ではありません
投稿= paginator.page(1)
EmptyPage除い:埋めるために、空のページであれば#、総ページ数
の記事を=ページネータ.PAGE(paginator.num_pagesは)

:レンダリング(要求、 'index1.html'、{投稿'投稿'})を返し


たHTML

、index1のを
<!DOCTYPE HTML> 
<HTMLのlang = "EN">
<HEAD>
<メタのcharset = "UTF-8">
<タイトル>タイトル</タイトル>
</ head>
<body>
<UL>
ポストの行のための{% .object_list%}
<LI> {{row.name}} - {{row.age}} </ LI>
{%のENDFOR%}
</ UL>
{% 'が含ま/ pager.html'挙げ%}
{#{ %もしposts.has_previous%}#}
{#<a href="/index.html?p={{ posts.previous_page_number }}">上一页</a>の#}
{#{%他%}#}
{#<a href="#">上一页</a>の#}
{#{%ENDIF%}#}
{##}
{#{%ポスト場合。has_next%}#}
{#<a href="/index.html?p={{ posts.next_page_number }}">下一页</a>の#}
{#{%ENDIF%}#}
{#<スパン>#}
{#{{posts.number}} - {{posts.paginator.num_pages}}#}
{#</スパン>#}
</ BODY>
</ HTML>

ページャ
以前の存在しない場合、{#は、表示前のポイントようしかし動かない}#
posts.has_previous IF {%}%を
<a href="/index.html?p={{ posts.previous_page_number }}">前</a>の
{%}%他
<a href="#">前</a>の
{%ENDIF%}

posts.paginator.pager_num_rangeにおけるI用{%}%
{I IF ==% %} posts.number
<a style="font-size: 30px;" href="/index1.html?p={{ }}"> {I} {I} </a>の
{%}%そう
<A = HREF "/ index1.html?P = {I} {}"> {{}} I </a>を
{%のENDIFの%}
{%} ENDFOR%

{%} IF posts.has_next%
<A HREF =「/ index.htmlを?P = {{posts.next_page_number} }「> 次に</a>の
{%} ENDIF%
<スパン>
{{投稿。数} - {{}} posts.paginator.num_pages
{#{{posts.paginator.num_pages}}总页数#}
</スパン>

おすすめ

転載: www.cnblogs.com/wenghao/p/11303732.html