-2

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

例えば:

51~100件、合計980件を記録

2ページ目

私はおそらく{% with object_list.count as "pages_total" %}テンプレートタグを使用してから多くのコードを使用することができます..そして最後のコードで {% endwith %}.. - {% paginate %}orの前に行われます{% autopaginate %}が、これは良い解決策ではないようです. また、別の db 呼び出しを行います。

ドキュメントでこれを見つけることができず{{ object_list.count }}、この状況では 50 になります。

4

3 に答える 3

1

人々はこれを過度に複雑にする傾向があります。current_start_index および current_end_index 関数がソースにかなり詳しく記載されていることがわかりました (ただし、実際のドキュメントにはありません)。

それらを使用してそれを達成する方法を次に示します。

{{ pages.current_start_index }} から {{ pages.current_end_index }} までの {{ pages.total_count }} 件の結果

これが誰かに役立つことを願っています:D

于 2014-10-13T13:15:23.657 に答える
0

すべての django-pagination paginator は、Django の組み込みのPaginatorクラスを拡張します。最善の解決策は、 を使用Paginator.countしてすべてのページの要素の総数を取得することです (QuerySetオブジェクトを に渡す場合Paginator)。ドキュメントによると:

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

はい、別の DB クエリを実行しますが、要素の数がわからない場合は避けられません。Django は、行数を取得する最良の方法であるcount()which usesSELECT COUNT(*)ステートメントを使用します。

于 2012-02-24T11:59:59.990 に答える