私のプログラムでは、エンティティを検索するためのユーティリティ関数があります。それはmax_count
パラメータをとります。 QuerySetを返します。クエリセットのスライスを取らずにDjangoクエリでLIMITパラメータを提供する
この機能では、エントリの最大数を制限したいと考えています。標準的な方法は、私のクエリセットのうちのスライスを取るために、次のようになります。
return results[:max_count]
私の問題は.order_by()
を使用してさまざまな方法でこの機能の並べ替えを利用ビューということです。スライスを取った後に再順序付けが許可されないため、例外が発生します。
スライスをとらずにSQLクエリに「LIMIT 1000」を強制することはできますか?
afaik [:max_count]はLIMITとして評価されます。 order_byを使用すると、すべてのレコードのサブセットのみを取得し、サブセットで実行されたorder_byを使用した次の問合せでは異なる結果が返されるため、結果を並べ替えることはできません。 – yedpodtrzitko
@yedpodtrzitko私はそれを理解しています。私の質問は、スライスを取らず、実行の後で再利用できるLIMITを実行する別の方法があるかどうかです。 –
@KoliberServices私は同じ質問をして実際に掘り出した。 http://stackoverflow.com/questions/29360146/limiting-the-number-of-results-from-a-django-queryset-without-using-slice/29360314#29360314 –