2011-10-27 30 views
5

Bir queryset'i denetlemek ve hangi filtrelerin/hariç tutmanın uygulandığı hakkında bilgi almanın bir yolu var mı?Django: Uygulanan filtreleri almak için queryset'i denetleyin

ben hata ayıklama için ihtiyaç: my QuerySet bazı veriler dışlayan neden anlayamıyorum ...

+3

Henüz yapmadıysanız SQL'in nasıl göründüğünü görmek için 'QuerySet.query' yöntemini kullanabilirsiniz. Belki bu yardımcı olur. –

cevap

6

yapmak kolay görünmüyor Yani. Her filtre, sorgu nesnesine farklı şekilde uygulanır, böylece temiz bir şekilde "filter1", "filter2", "filter3" öğesini bulmazsınız.

myqueryset.query.__dict__'a bakın - gelen filtre hemen ilgili alanlara ayrılır ve hiçbir kayıt kaydedilmez. Ayrıntılar django.db.models.sql.query.Query. Bunun yerine SQL'e bakabilirim.

print myqueryset.query 
2

bir kabuk ayıklama ediyorsanız:

from django.db import connection 
print connection.queries 

bir tarayıcı kullanımında istekleri yapıyorsanız django ayıklama araç çubuğu, bu harika bir araç ve çok yararlı olabilir:

Django Debug Toolbar