2011-10-27 113 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

如果你正在調試在shell:

from django.db import connection 
print connection.queries 

如果你在瀏覽器中使用發出請求Django的調試工具欄,這是一個偉大的工具,是非常有幫助:

Django Debug Toolbar