2011-10-27 17 views
5

¿Hay alguna manera de inspeccionar un queryset y obtener información sobre qué filtros/exclude se han aplicado?Django: inspeccionar queryset para obtener filtros aplicados

lo necesito para la depuración: No puedo entender por qué mi queryset excluye algunos datos ...

+3

Puede utilizar el método 'QuerySet.query' para ver lo que se ve como el SQL, si no lo ha hecho. Quizás eso ayude. –

Respuesta

6

no parece tan fácil de hacer. Cada filtro se aplica de manera diferente al objeto de consulta, por lo que no encontrará un "filter1", "filter2", "filter3" limpio.

Echa un vistazo myqueryset.query.__dict__ - el filtro entrante se separa en áreas relevantes inmediatamente y no se almacena ningún registro. Detalles en django.db.models.sql.query.Query.

Revisaría el SQL en su lugar.

print myqueryset.query 
2

Si está depurando en un shell:

from django.db import connection 
print connection.queries 

Si va a realizar peticiones en un uso del navegador barra de depuración de Django, es una gran herramienta y puede ser muy útil:

Django Debug Toolbar

Cuestiones relacionadas