0
Django 1.2.3では、純粋なDjango ORM関数では実行できないクエリを実行する必要があります。例えば。Django:SQLエンジンに応じてクエリを実行します
result = MyModel.objects.extra(select={'stddev': 'STDDEV_SAMP(value)'}).values()
実際、このコードをいくつかのSQLエンジン(sqllite、MySQL、MSSQL)で実行する必要があります。だから、私はsettings.DATABASES['default']['engine']
をテストし、エンジン固有のコードを実行する必要があります。
この問題のDjangoのようなアプローチがありますか? (例えば、Djangoがデフォルトのデータベースエンジンに従ってそれらを実行するようにユーザが定義した関数)。
ありがとう
合意。 UDFをデータベースに投げ捨て、モデル上の関数に置き換えます。 –
そのコードはすでに(インスタンスの値の標準偏差を与える)メソッドに入っています。私が探しているのは、データベースに依存しないDjango集計関数 'Sum'や' Avg'のようなものです。 – Don
'settings.DATABASES ['default'] ['engine']'をチェックするのはいいと思います。異なる環境で異なるクエリを実行したいが、データへのインターフェイスは同じままです。実装に幾分面倒なことがあるのはうれしいことですが、環境を確認してそれに応じて別の環境で別のコードを実行する別の方法は考えられません。 –