From c7bfcd2f377ad5803e25ee547dee9cf58ee68ab2 Mon Sep 17 00:00:00 2001 From: Sergey Fedoseev Date: Tue, 15 Nov 2016 01:47:20 +0600 Subject: Fixed #27481 -- Made SQLite return annotated boolean values as boolean, not integer. Thanks Simon Charette for review. --- django/db/backends/sqlite3/operations.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'django') diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index 47a26b5165..57c65a366e 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -209,6 +209,8 @@ class DatabaseOperations(BaseDatabaseOperations): converters.append(self.convert_decimalfield_value) elif internal_type == 'UUIDField': converters.append(self.convert_uuidfield_value) + elif internal_type in ('NullBooleanField', 'BooleanField'): + converters.append(self.convert_booleanfield_value) return converters def convert_datetimefield_value(self, value, expression, connection, context): @@ -242,6 +244,9 @@ class DatabaseOperations(BaseDatabaseOperations): value = uuid.UUID(value) return value + def convert_booleanfield_value(self, value, expression, connection, context): + return bool(value) if value in (1, 0) else value + def bulk_insert_sql(self, fields, placeholder_rows): return " UNION ALL ".join( "SELECT %s" % ", ".join(row) -- cgit v1.3