Commands¶
The Debug Toolbar currently provides one Django management command.
debugsqlshell
¶
This command starts an interactive Python shell, like Django’s built-in
shell
management command. In addition, each ORM call that results in a
database query will be beautifully output in the shell.
Here’s an example:
>>> from page.models import Page
>>> ### Lookup and use resulting in an extra query...
>>> p = Page.objects.get(pk=1)
SELECT "page_page"."id",
"page_page"."number",
"page_page"."template_id",
"page_page"."description"
FROM "page_page"
WHERE "page_page"."id" = 1
>>> print(p.template.name)
SELECT "page_template"."id",
"page_template"."name",
"page_template"."description"
FROM "page_template"
WHERE "page_template"."id" = 1
Home
>>> ### Using select_related to avoid 2nd database call...
>>> p = Page.objects.select_related('template').get(pk=1)
SELECT "page_page"."id",
"page_page"."number",
"page_page"."template_id",
"page_page"."description",
"page_template"."id",
"page_template"."name",
"page_template"."description"
FROM "page_page"
INNER JOIN "page_template" ON ("page_page"."template_id" = "page_template"."id")
WHERE "page_page"."id" = 1
>>> print(p.template.name)
Home