Search code examples
djangodjango-debug-toolbar

Capture SQL queries via Django debug toolbar


I'm calling my Django application from the command line with curl. I'm passing json in the request and collecting a response in json as well.

I have the Django debug toolbar installed. Is there a way I could capture the SQL via the toolbar and return it with the rest of the json response?

Something like

@json_response
def index(request):
    try:
        ids = json.loads(request.read())['ids']
    except ValueError:
        return HttpResponseBadRequest

    listing = MyModel.public().filter(id__in=[c.split('-')[0] for c in ids])

    prep_list = [ l.details(request) for l in listing ]

    return {'status_code': 0,
            'status_text': 'success',
            'sql_query_list: DjangoDebugToolbar.sql()
            'prep_list': prep_list }

Any idea what I'd put in replacement of DjangoDebugToolbar.sql()?


Solution

  • Try this:

    from django.db import connection  
    connection.queries
    

    you can get de last query doing:

    print connection.queries[-1]
    

    or

    print connection.queries.pop