diff options
| author | David Cramer | 2011-09-26 17:28:17 -0700 | 
|---|---|---|
| committer | David Cramer | 2011-09-26 17:28:17 -0700 | 
| commit | 49949387c863ecbbd043067c120b454d9377492a (patch) | |
| tree | deaeb4b454cda6c8d2128ce5aefcf59b2ec1d73b /debug_toolbar/panels/template.py | |
| parent | 8278bb0f24d925288740c23a2315e9c5a27a3290 (diff) | |
| parent | 65394257a31226a4c2a34aa8a358f0651c5f90f8 (diff) | |
| download | django-debug-toolbar-49949387c863ecbbd043067c120b454d9377492a.tar.bz2 | |
Merge branch 'issue-duplicated-queries' of https://github.com/thinred/django-debug-toolbar into thinred-issue-duplicated-queries
Diffstat (limited to 'debug_toolbar/panels/template.py')
| -rw-r--r-- | debug_toolbar/panels/template.py | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index 79a4871..5c20fcd 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -6,7 +6,9 @@ from django.conf import settings  from django.template.context import get_standard_processors  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/ @@ -68,8 +70,20 @@ 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): +                        model_name = "%s.%s" % (value.model._meta.app_label, value.model.__name__) +                        temp_layer[key] = '<<queryset of %s>>' % model_name                      else: -                        temp_layer[key] = value +                        try: +                            recording(False) +                            pformat(value)  # this MAY trigger a db query +                        except SQLQueryTriggered: +                            temp_layer[key] = '<<triggers database query>>' +                        else: +                            temp_layer[key] = value +                        finally: +                            recording(True)              try:                  context_list.append(pformat(temp_layer))              except UnicodeEncodeError:  | 
