2011-10-27 15 views
5

クエリーセットを検査し、どのフィルター/除外が適用されたかについての情報を得る方法はありますか?Django:クエリーセットを調べて適用されたフィルターを取得する

私はデバッグのためにそれを必要とする:私のクエリセットは、いくつかのデータを除外し、なぜあなたは、シェルでデバッグする場合、私は...

+3

もしあなたがまだいないのであれば、 'QuerySet.query'メソッドを使ってSQLの外観を見ることができます。多分それが助けになるでしょう。 –

答えて

6

行うことは容易ようではありません。各フィルタはクエリオブジェクトに異なる方法で適用されるので、きれいに配置された"filter1", "filter2", "filter3"を見つけることはできません。

チェックアウトmyqueryset.query.__dict__ - 入力フィルタは関連する領域にすぐに分割され、レコードは保存されません。 django.db.models.sql.query.Queryの詳細。

代わりにSQLをチェックアウトします。

print myqueryset.query 
2

を理解することはできません。

from django.db import connection 
print connection.queries 

ブラウザの使用中の要求を行っている場合ジャンゴデバッグツールバーは、それは素晴らしいツールだと非常に役に立つことができます:

Django Debug Toolbar

関連する問題