diff options
| author | Matthew J Morrison | 2010-12-08 08:42:57 -0600 |
|---|---|---|
| committer | Rob Hudson | 2010-12-08 08:20:12 -0800 |
| commit | 6578f0b8ea3b26022bb5161a40a77c6b15de21ae (patch) | |
| tree | afb0306343526590bc5f5b7b93f0b4438c81700f /debug_toolbar/panels/sql.py | |
| parent | 3a6c1d9daddfca3d37522ae6dc029b3a4a7a7206 (diff) | |
| download | django-debug-toolbar-6578f0b8ea3b26022bb5161a40a77c6b15de21ae.tar.bz2 | |
Added clean_params method to DatabaseStatTracker to scrub non-unicode
data for displaying on the sql panel
Signed-off-by: Rob Hudson <rob@cogit8.org>
Diffstat (limited to 'debug_toolbar/panels/sql.py')
| -rw-r--r-- | debug_toolbar/panels/sql.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py index e1e9bdf..299da66 100644 --- a/debug_toolbar/panels/sql.py +++ b/debug_toolbar/panels/sql.py @@ -12,7 +12,7 @@ from django.views.debug import linebreak_iter from django.template import Node from django.template.loader import render_to_string from django.utils import simplejson -from django.utils.encoding import force_unicode +from django.utils.encoding import force_unicode, DjangoUnicodeDecodeError from django.utils.hashcompat import sha_constructor from django.utils.translation import ugettext_lazy as _ @@ -85,12 +85,24 @@ class DatabaseStatTracker(util.CursorDebugWrapper): Replacement for CursorDebugWrapper which stores additional information in `connection.queries`. """ + def clean_params(self, params): + clean_params = () + for x in params: + try: + force_unicode(x, strings_only=True) + except DjangoUnicodeDecodeError: + clean_params += ("<non unicode object>", ) + else: + clean_params += (x, ) + return clean_params + def execute(self, sql, params=()): start = datetime.now() try: return self.cursor.execute(sql, params) finally: stop = datetime.now() + params = self.clean_params(params) duration = ms_from_timedelta(stop - start) stacktrace = tidy_stacktrace(traceback.extract_stack()) _params = '' |
