aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/template.py
diff options
context:
space:
mode:
authorMatt George2008-09-29 12:30:37 -0500
committerMatt George2008-09-29 12:30:37 -0500
commit4734384cecd18ee6497730dc997aa34040975d13 (patch)
treeadbbe87fbc1f441e83ea068f19a5128fffd98f09 /debug_toolbar/panels/template.py
parent2a32669822bddb31f687fcf6ca45f5d82d691e8d (diff)
parentce8c68b79c2de4abde01b29b1c73754ce4deb981 (diff)
downloaddjango-debug-toolbar-4734384cecd18ee6497730dc997aa34040975d13.tar.bz2
Merge branch 'master' of git://github.com/robhudson/django-debug-toolbar
Conflicts: debug_toolbar/templates/debug_toolbar/base.html
Diffstat (limited to 'debug_toolbar/panels/template.py')
-rw-r--r--debug_toolbar/panels/template.py42
1 files changed, 31 insertions, 11 deletions
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py
index f1cf65b..022a41f 100644
--- a/debug_toolbar/panels/template.py
+++ b/debug_toolbar/panels/template.py
@@ -1,6 +1,8 @@
+from pprint import pformat
from django.conf import settings
from django.core.signals import request_started
from django.dispatch import Signal
+from django.template.context import get_standard_processors
from django.template.loader import render_to_string
from django.test.signals import template_rendered
from debug_toolbar.panels import DebugPanel
@@ -30,13 +32,12 @@ class TemplateDebugPanel(DebugPanel):
name = 'Template'
has_content = True
- def __init__(self, request):
- super(TemplateDebugPanel, self).__init__(request)
- self.templates_used = []
- template_rendered.connect(self._storeRenderedTemplates)
+ def __init__(self):
+ self.templates = []
+ template_rendered.connect(self._storeTemplateInfo)
- def _storeRenderedTemplates(self, sender, **kwargs):
- self.templates_used.append(kwargs['template'])
+ def _storeTemplateInfo(self, sender, **kwargs):
+ self.templates.append(kwargs)
def title(self):
return 'Templates'
@@ -44,13 +45,32 @@ class TemplateDebugPanel(DebugPanel):
def url(self):
return ''
+ def process_request(self, request):
+ self.context_processors = dict(
+ [("%s.%s" % (k.__module__, k.__name__), pformat(k(request))) for k in get_standard_processors()]
+ )
+
def content(self):
- templates = [
- (t.name, t.origin and t.origin.name or 'No origin')
- for t in self.templates_used
- ]
+ template_context = []
+ for i, d in enumerate(self.templates):
+ info = {}
+ # Clean up some info about templates
+ t = d.get('template', None)
+ # Skip templates that we are generating through the debug toolbar.
+ if t.name.startswith('debug_toolbar/'):
+ continue
+ if t.origin and t.origin.name:
+ t.origin_name = t.origin.name
+ else:
+ t.origin_name = 'No origin'
+ info['template'] = t
+ # Clean up context for better readability
+ c = d.get('context', None)
+ info['context'] = '\n'.join([pformat(_d) for _d in c.dicts])
+ template_context.append(info)
context = {
- 'templates': templates,
+ 'templates': template_context,
'template_dirs': settings.TEMPLATE_DIRS,
+ 'context_processors': self.context_processors,
}
return render_to_string('debug_toolbar/panels/templates.html', context)