djangoでカスタムSQLクエリを実行し、クエリ結果をオブジェクトに変換する必要があるたびに、どのように仲間Slackersはこれに対処するのだろうか。たぶん誰かがDjangoのカスタムSQLを扱うためのライブラリを書いていたのでしょうか?Django ORMでraw SQLを実行しやすくするためのツール
2
A
答えて
3
問題は「手動でクエリ結果をオブジェクトに変換する」ため、最も簡単な解決策は、カスタムSQLを純粋なSQLクエリではなくORM .extra()呼び出しに適合させるかどうかを確認することです。それはしばしば可能です。そして、ORMにオブジェクトを構築するすべての作業をいつものようにさせます。
4
あなたが探しているものを正確にわからないが、あなたは常にthe docsあたりのカスタムSQLを実行するためにモデルにメソッドを追加することができます。
def my_custom_sql(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
row = cursor.fetchone()
return row
より汎用的なものについては、関数を定義abstract base modelを作成しますそのような "sql"パラメータを使用します。
4
最新開発版(未来1.2)は、そのお手伝いをするために()メソッドを持っていた.raw:
Person.objects.raw('SELECT * FROM myapp_person')
詳しい情報はhttp://docs.djangoproject.com/en/dev/topics/db/sql/の下に見つけることができます。
関連する問題
- 1. Python/Djangoの間違いを避けるためのツールやテクニック
- 2. raw SQLをdjango ormにマップ
- 3. railsとjavaでraw sqlを実行する
- 4. 多くの人がFlask-SQLAlchemyを使用して、実行された代わりにraw sqlを返します。
- 5. ランダムで現実的なテキストを生成するためのライブラリやツール
- 6. djangoのすべてのINSERT/UPDATE/DELETEの前にraw SQLを実行する方法はありますか?
- 7. 同時実行の問題を検出するためのツール
- 8. コードを分析してステップ実行するためのツールですか?
- 9. gitリポジトリを実行するためのGUI管理ツール
- 10. Djangoプロジェクトで複雑なクエリを実行するためのSqlalchemy
- 11. Python Django Raw SQL反復でTypeErrorが発生する
- 12. django raw sqlの引数としてリストまたはタプルを渡す
- 13. django select sqlまたはstatementの実行方法は?
- 14. 連続して実行するとSQLクエリが遅くなりますが、別々に実行するとすばやく実行します。
- 15. クラスタ内でジョブを実行および監視するためのツール
- 16. Mの前にMがあるファイルでsvn ciを実行するには...?
- 17. EctoでのRaw SQL
- 18. DSLをSQLに変換するための正しいツールですか?
- 19. Web/App.configなしでEntity Framework migrate.exeツールを実行するための正しい形式は何ですか?
- 20. Django Cronジョブを実行するためにWindows上でCeleryを設定する
- 21. n行を選択してm行を返すことができるSQLクエリ
- 22. Eclipseでデータベースを編集するための使いやすいツール
- 23. "動的" OpenQueryを実行するためのSQL SP_EXECSQL @VAR
- 24. Entityフレームワーククエリでraw sqlをマージする
- 25. sql-blockを実行するためにemacs sql-modeをカスタマイズする
- 26. 別のブラウザでJavaScriptの互換性をテストするためのツールやクラウドサービス
- 27. iperfツールは、rawソケットのスループットを測定するために使用できますか?
- 28. ローカルファイルでSQLを実行するためのシンプルなアプリですか?
- 29. javascriptコードを書くためのツール
- 30. CLIから実行したときにPython GUIプログラムが終了するのをやめてください
+1:モデルのもう1つの方法。ニース。 –