File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change 12
12
from django .template import Node
13
13
from django .template .loader import render_to_string
14
14
from django .utils import simplejson
15
- from django .utils .encoding import force_unicode
15
+ from django .utils .encoding import force_unicode , DjangoUnicodeDecodeError
16
16
from django .utils .hashcompat import sha_constructor
17
17
from django .utils .translation import ugettext_lazy as _
18
18
@@ -85,12 +85,24 @@ class DatabaseStatTracker(util.CursorDebugWrapper):
85
85
Replacement for CursorDebugWrapper which stores additional information
86
86
in `connection.queries`.
87
87
"""
88
+ def clean_params (self , params ):
89
+ clean_params = ()
90
+ for x in params :
91
+ try :
92
+ force_unicode (x , strings_only = True )
93
+ except DjangoUnicodeDecodeError :
94
+ clean_params += ("<non unicode object>" , )
95
+ else :
96
+ clean_params += (x , )
97
+ return clean_params
98
+
88
99
def execute (self , sql , params = ()):
89
100
start = datetime .now ()
90
101
try :
91
102
return self .cursor .execute (sql , params )
92
103
finally :
93
104
stop = datetime .now ()
105
+ params = self .clean_params (params )
94
106
duration = ms_from_timedelta (stop - start )
95
107
stacktrace = tidy_stacktrace (traceback .extract_stack ())
96
108
_params = ''
You can’t perform that action at this time.
0 commit comments