-2

現在のページと合計のレコードインデックスを表示するオプションはありますか?例えばdjango-endless-pagination django-paginationレコードインデックスページと合計のインデックス

レコード51-100、980総

ページ#2

に私は多分、コードの多くを{% with object_list.count as "pages_total" %} templatetagを使用することができます。..と{%最後のコードでendwith%} - {% paginate %}または{% autopaginate %}の前に行われましたが、これは素晴らしい解決策ではありません。また、別のDB呼び出しを行います。

これはドキュメントでは見つかりません。この場合、{{ object_list.count }}は50になります。

答えて

0

すべてのジャンゴページネーションペジネーターは、Djangoの組み込みのPaginatorクラスを拡張しています。最良の解決策は、QuerySetオブジェクトをPaginatorに渡す場合は、Paginator.countを使用してすべてのページの要素の合計数を取得することです。 doc:

object_listに含まれるオブジェクトの数を特定するとき、Paginatorはまずobject_list.count()を呼び出します。 object_listにcount()メソッドがない場合、Paginatorはlen(object_list)を使用してフォールバックします。これにより、DjangoのQuerySetなどのオブジェクトは、利用可能な場合により効率的なcount()メソッドを使用できます。

はい、それは別のDBクエリを行いますが、要素の数がわからない場合は避けられません。 Djangoは、SELECT COUNT(*)文を使用するcount()を使用します。これは、行数を取得する最も良い方法です。

+0

です。 '{%include" paginator.html "%}"を使用しています。私が言及した両方のソリューションは、オブジェクトの総数を認識しています。クエリーセットを複数の部分に分割するため、オブジェクトの数が必要です。 '{%pages.total_count%}'テンプレートタグがない、または利用可能な変数がないのはなぜか分かりません。または多分私はドームのドキュメントを見逃しています。 – Robert

+0

なぜページ区切りをより難しくするのでしょうか? –

+0

あなたは '{{total_count}}'を '{total_count"%} 'としてobject_list.countで保持しなければなりません。それだけで、paginator div(レコードの総数を表示)を使用できます。私は、もしどちらかのジャンゴ・ページネーションやジャンゴ・エンドレス・ページネーションがそのような変数を提供すれば、これはもっと簡単だろうと思います。このコードはより洗練されたものになり、1つ少ないクエリでデータベースにアクセスします。単純にpagination_tagsを読み込んでから、オブジェクトリスト+ページ区切りdivを含む自動ページングを行うだけです(これは実際に現在行っています) - 私は合計カウントと現在のページ開始/終了インデックスを持っていません。 – Robert

1

人々はこれを過度に複雑にする傾向があります。 current_start_index関数とcurrent_end_index関数が、ソースではかなり文書化されていますが、実際のドキュメントでは見つかりませんでした。

これを達成するために使用する方法は次のとおりです。あなたがDjangoの無限のページネーション2.0を使用している場合はD

2

:{{pages.current_end_index}} {{pages.total_count}}の貫通

{{pages.current_start_indexが}}

希望をもたらし、これは誰かに役立ちます、あなたはあなたのテンプレートでこれを使用することができます:

{% load endless %} 
{% paginate entries %} 
{% for entry in entries %} 
    {# your code to show the entry #} 
{% endfor %} 
{% get_pages %} 
Showing entries 
{{ pages.current_start_index }}-{{ pages.current_end_index }} of 
{{ pages.total_count }}. 
{{ pages }} 

このすべてが難しくページネーションのdiv要素を含むようになりますそれDjango-endless-pagination document