Django

Code

Changeset 5247

Show
Ignore:
Timestamp:
05/15/07 11:13:37 (1 year ago)
Author:
mtredinnick
Message:

unicode: Improved the fix for debug query logging from [5208]. Refs #3891.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/unicode/django/db/backends/util.py

    r5208 r5247  
    1414        finally: 
    1515            stop = time() 
    16             # If params was a list, convert it to a tuple, because string 
    17             # formatting with '%' only works with tuples or dicts. 
    18             if not isinstance(params, (tuple, dict)): 
    19                 params = tuple(params) 
    2016            self.db.queries.append({ 
    21                 'sql': smart_unicode(sql) % params
     17                'sql': smart_unicode(sql) % convert_args(params)
    2218                'time': "%.3f" % (stop - start), 
    2319            }) 
     
    3026            stop = time() 
    3127            self.db.queries.append({ 
    32                 'sql': 'MANY: ' + sql + ' ' + str(tuple(param_list)), 
     28                'sql': 'MANY: ' + sql + ' ' + smart_unicode(tuple(param_list)), 
    3329                'time': "%.3f" % (stop - start), 
    3430            }) 
     
    3935        else: 
    4036            return getattr(self.cursor, attr) 
     37 
     38def convert_args(args): 
     39    """ 
     40    Convert sequence or dictionary to contain unicode values. 
     41    """ 
     42    if isinstance(args, (list, tuple)): 
     43        return tuple([smart_unicode(val) for val in args]) 
     44    else: 
     45        return dict([(smart_unicode(k), smart_unicode(v)) for k, v in args.items()]) 
    4146 
    4247###############################################