1. ホーム
  2. django

[解決済み] Django ORM のクエリセットに対応する SQL クエリを表示するには?

2022-04-21 02:04:55

質問

Django ORM が生成するクエリを表示する方法はありますか?

次のような文を実行したとします。 Model.objects.filter(name='test')

生成されたSQLクエリを確認するにはどうすればよいですか?

解決方法を教えてください。

各QuerySetオブジェクトには query 属性があり、デバッグ用にログを取ったり標準出力に出力することができます。

qs = Model.objects.filter(name='test')
print(qs.query)

なお、pdbでは p qs.query は思い通りに動作しませんが print(qs.query) となります。

それでもうまくいかない場合、古い Django バージョンの場合は、試してみてください。

print str(qs.query)

編集

また、カスタムテンプレートタグ(概要については このスニペット ) を使って、1つのリクエストのスコープにクエリをHTMLコメントとして注入しています。