Skip to content

Instantly share code, notes, and snippets.

@claudep
Created August 11, 2012 18:23
Show Gist options
  • Save claudep/3326177 to your computer and use it in GitHub Desktop.
Save claudep/3326177 to your computer and use it in GitHub Desktop.
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 0880079..8c300ff 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -11,6 +11,7 @@ import decimal
import warnings
import re
import sys
+from functools import partial
from django.db import utils
from django.db.backends import *
@@ -56,13 +57,16 @@ def adapt_datetime_with_timezone_support(value):
value = value.astimezone(timezone.utc).replace(tzinfo=None)
return value.isoformat(str(" "))
-Database.register_converter(str("bool"), lambda s: str(s) == '1')
-Database.register_converter(str("time"), parse_time)
-Database.register_converter(str("date"), parse_date)
-Database.register_converter(str("datetime"), parse_datetime_with_timezone_support)
-Database.register_converter(str("timestamp"), parse_datetime_with_timezone_support)
-Database.register_converter(str("TIMESTAMP"), parse_datetime_with_timezone_support)
-Database.register_converter(str("decimal"), util.typecast_decimal)
+def from_db_encoding(value, func=None):
+ return func(value.decode('utf-8'))
+
+Database.register_converter(str("bool"), partial(from_db_encoding, func=lambda s: s == '1'))
+Database.register_converter(str("time"), partial(from_db_encoding, func=parse_time))
+Database.register_converter(str("date"), partial(from_db_encoding, func=parse_date))
+Database.register_converter(str("datetime"), partial(from_db_encoding, func=parse_datetime_with_timezone_support))
+Database.register_converter(str("timestamp"), partial(from_db_encoding, func=parse_datetime_with_timezone_support))
+Database.register_converter(str("TIMESTAMP"), partial(from_db_encoding, func=parse_datetime_with_timezone_support))
+Database.register_converter(str("decimal"), partial(from_db_encoding, func=util.typecast_decimal))
Database.register_adapter(datetime.datetime, adapt_datetime_with_timezone_support)
Database.register_adapter(decimal.Decimal, util.rev_typecast_decimal)
if Database.version_info >= (2, 4, 1):
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment