diff options
| author | Tomasz Buchert | 2011-09-26 00:03:47 +0200 |
|---|---|---|
| committer | Tomasz Buchert | 2011-09-26 00:03:47 +0200 |
| commit | 01b5d65a1da80f3cc6120e53bba46e4da2ff44ca (patch) | |
| tree | 817fea74904193293f0e77136b169b3bae37a316 /debug_toolbar/panels/template.py | |
| parent | 5a3813d2bb4fb63d66b1b8a13edb8354b36a28b4 (diff) | |
| download | django-debug-toolbar-01b5d65a1da80f3cc6120e53bba46e4da2ff44ca.tar.bz2 | |
Issue 187: queries are captured and not executed when template panel is rendered.
Diffstat (limited to 'debug_toolbar/panels/template.py')
| -rw-r--r-- | debug_toolbar/panels/template.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index d620a38..ff8cd15 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -7,7 +7,9 @@ from django.template.context import get_standard_processors from django.template.loader import render_to_string from django.test.signals import template_rendered from django.utils.translation import ugettext_lazy as _ +from django.db.models.query import QuerySet from debug_toolbar.panels import DebugPanel +from debug_toolbar.utils.tracking.db import recording, SQLQueryTriggered # Code taken and adapted from Simon Willison and Django Snippets: # http://www.djangosnippets.org/snippets/766/ @@ -66,8 +68,19 @@ class TemplateDebugPanel(DebugPanel): # Replace LANGUAGES, which is available in i18n context processor elif key == 'LANGUAGES' and isinstance(value, tuple): temp_layer[key] = '<<languages>>' + # QuerySet would trigger the database: user can run the query from SQL Panel + elif isinstance(value, QuerySet): + temp_layer[key] = '<<queryset>>' else: - temp_layer[key] = value + try: + recording(False) + pformat(value) # this MAY trigger a db query + except SQLQueryTriggered: + temp_layer[key] = '<<contains queryset>>' + else: + temp_layer[key] = value + finally: + recording(True) try: context_list.append(pformat(temp_layer)) except UnicodeEncodeError: |
