aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/request.py
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-24 10:42:43 +0100
committerAymeric Augustin2013-11-24 11:01:44 +0100
commitfe3df822111d3b56000deca354b0bceed7bde9cc (patch)
tree8fe21689037cd975f83e7f70480b96e0ba2e3b6a /debug_toolbar/panels/request.py
parent7d24008ac3d70796c1502215c665311d2f21d6fd (diff)
downloaddjango-debug-toolbar-fe3df822111d3b56000deca354b0bceed7bde9cc.tar.bz2
Rename all panels consistently.
Enforce absolute imports to avoid clashing with built-in package names. Thanks Jannis for his feedback.
Diffstat (limited to 'debug_toolbar/panels/request.py')
-rw-r--r--debug_toolbar/panels/request.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/debug_toolbar/panels/request.py b/debug_toolbar/panels/request.py
new file mode 100644
index 0000000..934946a
--- /dev/null
+++ b/debug_toolbar/panels/request.py
@@ -0,0 +1,54 @@
+from __future__ import absolute_import, unicode_literals
+
+from django.core.urlresolvers import resolve
+from django.http import Http404
+from django.utils.encoding import force_text
+from django.utils.translation import ugettext_lazy as _
+
+from debug_toolbar.panels import Panel
+from debug_toolbar.utils import get_name_from_obj
+
+
+class RequestPanel(Panel):
+ """
+ A panel to display request variables (POST/GET, session, cookies).
+ """
+ name = 'Request'
+ template = 'debug_toolbar/panels/request.html'
+ has_content = True
+
+ def nav_title(self):
+ return _('Request')
+
+ def title(self):
+ return _('Request')
+
+ def process_response(self, request, response):
+ self.record_stats({
+ 'get': [(k, request.GET.getlist(k)) for k in sorted(request.GET)],
+ 'post': [(k, request.POST.getlist(k)) for k in sorted(request.POST)],
+ 'cookies': [(k, request.COOKIES.get(k)) for k in sorted(request.COOKIES)],
+ })
+ view_info = {
+ 'view_func': _('<no view>'),
+ 'view_args': 'None',
+ 'view_kwargs': 'None',
+ 'view_urlname': 'None',
+ }
+ try:
+ match = resolve(request.path)
+ func, args, kwargs = match
+ view_info['view_func'] = get_name_from_obj(func)
+ view_info['view_args'] = args
+ view_info['view_kwargs'] = kwargs
+ view_info['view_urlname'] = getattr(match, 'url_name',
+ _('<unavailable>'))
+ except Http404:
+ pass
+ self.record_stats(view_info)
+
+ if hasattr(request, 'session'):
+ self.record_stats({
+ 'session': [(k, request.session.get(k))
+ for k in sorted(request.session.keys(), key=force_text)]
+ })