From 090acab49e07a09c678a510a812a97724bdaf2a5 Mon Sep 17 00:00:00 2001 From: David Cramer Date: Wed, 20 Feb 2013 13:42:06 -0800 Subject: Improvements for decoding params for recording --- debug_toolbar/utils/tracking/db.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'debug_toolbar/utils') diff --git a/debug_toolbar/utils/tracking/db.py b/debug_toolbar/utils/tracking/db.py index d898b31..db9974e 100644 --- a/debug_toolbar/utils/tracking/db.py +++ b/debug_toolbar/utils/tracking/db.py @@ -91,8 +91,12 @@ class NormalCursorWrapper(object): for key, value in params.iteritems()) return map(self._quote_expr, params) + def _decode(self, param): + if isinstance(param, unicode): + return param.decode('utf-8', 'ignore') + return param + def execute(self, sql, params=()): - __traceback_hide__ = True start = datetime.now() try: return self.cursor.execute(sql, params) @@ -107,10 +111,8 @@ class NormalCursorWrapper(object): stacktrace = [] _params = '' try: - _params = json.dumps( - [force_unicode(x, strings_only=True) for x in params] - ) - except TypeError: + _params = json.dumps(map(self._decode, params)) + except Exception: pass # object not JSON serializable template_info = None -- cgit v1.2.3