diff --git a/debug_toolbar/panels/request_vars.py b/debug_toolbar/panels/request_vars.py index ade23f342..c082ea216 100644 --- a/debug_toolbar/panels/request_vars.py +++ b/debug_toolbar/panels/request_vars.py @@ -41,6 +41,9 @@ def process_response(self, request, response): try: match = resolve(self.request.path) func, args, kwargs = match + # Converting the objects to its string representation + args = tuple([str(arg) for arg in args]) + kwargs = dict([(key, str(arg)) for (key, arg) in kwargs.iteritems()]) view_info['view_func'] = get_name_from_obj(func) view_info['view_args'] = args view_info['view_kwargs'] = kwargs diff --git a/tests/forms.py b/tests/forms.py new file mode 100644 index 000000000..d4269871c --- /dev/null +++ b/tests/forms.py @@ -0,0 +1,4 @@ +from django import forms + +class TestForm(forms.Form): + pass diff --git a/tests/tests.py b/tests/tests.py index f76f1ab0d..3749c1077 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -17,6 +17,8 @@ from debug_toolbar.utils import get_name_from_obj from debug_toolbar.utils.tracking import pre_dispatch, post_dispatch, callbacks +from forms import TestForm + rf = RequestFactory() @@ -171,7 +173,8 @@ def test_url_resolving_named(self): def test_url_resolving_mixed(self): stats = self._resolve_stats('/resolving3/a/') self.assertEquals(stats['view_args'], ('a',)) - self.assertEquals(stats['view_kwargs'], {'arg2': 'default'}) + self.assertEquals(stats['view_kwargs'], { + 'arg2': 'default', 'arg3': '1', 'arg4': str(TestForm) }) def test_url_resolving_bad(self): stats = self._resolve_stats('/non-existing-url/') diff --git a/tests/urls.py b/tests/urls.py index 778f417c2..dfb4dc82a 100644 --- a/tests/urls.py +++ b/tests/urls.py @@ -5,6 +5,7 @@ this into the urlconf for the request. """ from django.contrib import admin +from forms import TestForm try: from django.conf.urls import patterns, url except ImportError: # django < 1.4 @@ -16,6 +17,7 @@ # This pattern should be last to ensure tests still work url(r'^resolving1/(.+)/(.+)/$', 'tests.views.resolving_view', name='positional-resolving'), url(r'^resolving2/(?P.+)/(?P.+)/$', 'tests.views.resolving_view'), - url(r'^resolving3/(.+)/$', 'tests.views.resolving_view', { 'arg2' : 'default' }), + url(r'^resolving3/(.+)/$', 'tests.views.resolving_view', { + 'arg2' : 'default', 'arg3': 1, 'arg4': TestForm }), url(r'^execute_sql/$', 'tests.views.execute_sql'), )