diff options
| author | Rob Hudson | 2008-09-18 13:43:13 -0700 |
|---|---|---|
| committer | Rob Hudson | 2008-09-18 13:43:13 -0700 |
| commit | e40b2c0fbdbd932be5f9d0550a16b6652de0d38d (patch) | |
| tree | f26f3c7456c6f3c47cb168472f1994c449c24b60 /debug_toolbar/panels/template.py | |
| parent | 816889b61cdd8bd1380009cfc755f9f655406e5c (diff) | |
| download | django-debug-toolbar-e40b2c0fbdbd932be5f9d0550a16b6652de0d38d.tar.bz2 | |
I noticed the template_rendered signal from the test suite also passed context,
so I'm including the context with each template in the Template panel. This
should make the designers happy.
Diffstat (limited to 'debug_toolbar/panels/template.py')
| -rw-r--r-- | debug_toolbar/panels/template.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index f1cf65b..f02b673 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -32,11 +32,11 @@ class TemplateDebugPanel(DebugPanel): def __init__(self, request): super(TemplateDebugPanel, self).__init__(request) - self.templates_used = [] - template_rendered.connect(self._storeRenderedTemplates) + 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' @@ -45,12 +45,22 @@ class TemplateDebugPanel(DebugPanel): return '' 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) + 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([_d.__repr__() for _d in c.dicts]) + template_context.append(info) context = { - 'templates': templates, + 'templates': template_context, 'template_dirs': settings.TEMPLATE_DIRS, } return render_to_string('debug_toolbar/panels/templates.html', context) |
