0

みんな。

私は Django 1.3 と Postgres 9.0 を使用しています。単純なモデル テーブル ルックアップをいくつかの追加フィールドで拡張する非常に複雑な SQL クエリがあります。また、パラメーター化されているため、テーブル関数でラップされています。
raw クエリの助けを借りてなんとか動作させることができた 1 か月前に、RawQuerySet には本当に必要な多くの機能 (フィルター、count() および clone() メソッド、連鎖可能性) が欠けています。
アイデアはシンプルに見えます。QuerySet を使用すると、次のクエリを実行できます。

SELECT "table"."field1", ... ,"table"."fieldN" FROM "table"

一方、私はこれを行う必要があります:

SELECT "table"."field1", ... ,"table"."fieldN" FROM proxy(param1, param2)

質問は次のとおりです。どうすればこれを行うことができますか? 既にカスタム マネージャーの作成を開始しましたが、model.db_table をカスタム文字列で置き換えることはできません (引用されており、データベースが関数呼び出しの認識を停止するため)。
テーブルを関数に置き換える方法がない場合は、RawQuerySet から QuerySet を作成できるかどうかを知りたいです (最もクリーンなソリューションではありませんが、単純な RawQuerySet は体の一部に大きな苦痛をもたらします)。

4

1 に答える 1

1

効率化のために生の SQL を使用し、モデル メソッドにアクセスする必要がある場合、実際に必要なのは、SQL のどのフィールドがどのモデルの列であるかをマップするためのライブラリです。

そしてそのライブラリは、Unjoinify

于 2011-07-06T10:53:24.700 に答える