Hi folks,
Is there a way I can print the query the Django ORM is generating?
Say I execute the following statement: Model.objects.filter(name='test')
How do I get to see the generated SQL query?
Thanks in advance!
Hi folks,
Is there a way I can print the query the Django ORM is generating?
Say I execute the following statement: Model.objects.filter(name='test')
How do I get to see the generated SQL query?
Thanks in advance!
Each QuerySet object has a 'query' field that you can log or print to stdout for debugging purposes.
qs = Model.objects.filter(name='test')
print qs.query
Edit
I've also used custom template tags (as outlined in this snippet) to inject the queries in the scope of a single request as HTML comments.
As long as DEBUG
is on:
from django.db import connection
print connection.queries
For an individual query, you can do:
Model.objects.filter(name='test').query.as_sql()
Maybe you should take a look at django-debug-toolbar
application, it will log all queries for you, display profiling information for them and much more.