diff options
| author | Aymeric Augustin | 2013-11-24 10:42:43 +0100 | 
|---|---|---|
| committer | Aymeric Augustin | 2013-11-24 11:01:44 +0100 | 
| commit | fe3df822111d3b56000deca354b0bceed7bde9cc (patch) | |
| tree | 8fe21689037cd975f83e7f70480b96e0ba2e3b6a /debug_toolbar/panels/request.py | |
| parent | 7d24008ac3d70796c1502215c665311d2f21d6fd (diff) | |
| download | django-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.py | 54 | 
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)] +            }) | 
