1

私はかなり複雑な QuerySet を持っています。これは、注釈付きの値を大量に使用して、レコード セット全体のカウントと合計を取得します。結果の行はグループ化され、グループごとに、この列の合計、またはその列の数などを表示します。

問題は、データをページ分割するためにクエリ セットをスライスすると、クエリが評価され、カウントと合計が完全なものではなく、スライスされたクエリ セットに関連するようになることです。

これを回避する方法はありますか。つまり、返された行全体で合計/カウントを表示したまま、スライスされたクエリ セットを返す方法はありますか?

クエリセットを最初に実行し、実行後にのみスライスすることができるかどうかを確認しようとしましたが、それを行う方法が見つからなかったので、それが機能するかどうかわかりません (そうでしょうか?)

どうもありがとう、ハレル

4

2 に答える 2

2

次のようにして、評価するクエリセットを取得できるはずです。

qs = list(qs)

その時点で、それはもはやクエリセットではなく、通常のようにスライスできる通常の Python リストです。

もちろん、ページネーションのためにこれを行う際の問題は、どのページが表示されても、データベースからレコードのセット全体を返すことです。データセットが大きい場合、これは実際の問題になる可能性があります。あなたの要件を考えると、それは避けられないように思えます。クエリは、すべてのレコードを処理するか、一部のみを処理します。詳細を見ないと、確かなことはわかりません。

于 2009-11-12T17:33:30.507 に答える
0

最終的に別のクエリを実行して合計を取得し、その結果と問題の実際のページを返しました。私が扱っているデータの量では、そのようなクエリ セット全体を実際に処理することはできません。ありがとうカール!

于 2009-11-13T20:11:40.580 に答える