0

問題:カスタムdjangoモデルフィールドを作成しています。get_db_prep_save(self、value、connection)で、Oracleバックエンドの例外を実行し、他のバックエンドとは異なる動作をする必要があります。だから私はこれを行うための最良の、公式のそして最もエレガントな方法を探しています。

免責事項:「settings.DATABASESを使用してdjango.db.backends.oracleを探してください」という回答は、単に間違っているため、受け入れません。設定を使用すると、現在使用しているデータベース(デフォルトまたはその他)がわかりません。将来、Oracleのバックエンドパスがdjango.db.backends.oracleから別のデータベースに変更される可能性があります。私が探しているのは、カスタムフィールドをデータベースに保存するときにOracleを扱っているかどうかを確認するための最良の方法です。

4

2 に答える 2

0

ドキュメントを見ると

クエリに使用される特定の接続は、接続パラメーターとして渡されます。これにより、必要に応じてバックエンド固有の変換ロジックを使用できます。

したがって、接続パラメーターは、接続しようとしているバックエンドに関する情報を提供できます。接続パラメーターは、保存を実行する実際の DB_ALIASのプロキシ オブジェクト (このコードを参照) である必要があります。

于 2012-12-07T11:51:19.540 に答える
-1

私は自分の質問に答えるのが嫌いですが、正しい答えは次のとおりであることがわかりました。

connection.vendor
于 2012-12-11T10:55:38.923 に答える