summaryrefslogtreecommitdiff
path: root/django/db/backends/sqlite3
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2015-04-12 14:46:24 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2015-05-17 09:36:23 +0200
commitec186572e6cfde4cd4bc1491ff552c5d32211d9f (patch)
tree84bfb6b786f7dfecc535347a14284032bf0a5370 /django/db/backends/sqlite3
parenteda12ceef16aa1a98567e25be619b05a5b3c5757 (diff)
Removed global timezone-aware datetime converters.
Refs #23820.
Diffstat (limited to 'django/db/backends/sqlite3')
-rw-r--r--django/db/backends/sqlite3/base.py11
-rw-r--r--django/db/backends/sqlite3/operations.py21
-rw-r--r--django/db/backends/sqlite3/utils.py11
3 files changed, 18 insertions, 25 deletions
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 6eb39ad2c3..4cc6266893 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -17,7 +17,9 @@ from django.db.backends import utils as backend_utils
from django.db.backends.base.base import BaseDatabaseWrapper
from django.db.backends.base.validation import BaseDatabaseValidation
from django.utils import six, timezone
-from django.utils.dateparse import parse_date, parse_duration, parse_time
+from django.utils.dateparse import (
+ parse_date, parse_datetime, parse_duration, parse_time,
+)
from django.utils.encoding import force_text
from django.utils.safestring import SafeBytes
@@ -42,7 +44,6 @@ from .features import DatabaseFeatures # isort:skip
from .introspection import DatabaseIntrospection # isort:skip
from .operations import DatabaseOperations # isort:skip
from .schema import DatabaseSchemaEditor # isort:skip
-from .utils import parse_datetime_with_timezone_support # isort:skip
DatabaseError = Database.DatabaseError
IntegrityError = Database.IntegrityError
@@ -71,9 +72,9 @@ def decoder(conv_func):
Database.register_converter(str("bool"), decoder(lambda s: s == '1'))
Database.register_converter(str("time"), decoder(parse_time))
Database.register_converter(str("date"), decoder(parse_date))
-Database.register_converter(str("datetime"), decoder(parse_datetime_with_timezone_support))
-Database.register_converter(str("timestamp"), decoder(parse_datetime_with_timezone_support))
-Database.register_converter(str("TIMESTAMP"), decoder(parse_datetime_with_timezone_support))
+Database.register_converter(str("datetime"), decoder(parse_datetime))
+Database.register_converter(str("timestamp"), decoder(parse_datetime))
+Database.register_converter(str("TIMESTAMP"), decoder(parse_datetime))
Database.register_converter(str("decimal"), decoder(backend_utils.typecast_decimal))
Database.register_adapter(datetime.datetime, adapt_datetime_with_timezone_support)
diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py
index f7e2c64da1..3505ebda03 100644
--- a/django/db/backends/sqlite3/operations.py
+++ b/django/db/backends/sqlite3/operations.py
@@ -10,11 +10,9 @@ from django.db.backends import utils as backend_utils
from django.db.backends.base.operations import BaseDatabaseOperations
from django.db.models import aggregates, fields
from django.utils import six, timezone
-from django.utils.dateparse import parse_date, parse_time
+from django.utils.dateparse import parse_date, parse_datetime, parse_time
from django.utils.duration import duration_string
-from .utils import parse_datetime_with_timezone_support
-
try:
import pytz
except ImportError:
@@ -157,18 +155,23 @@ class DatabaseOperations(BaseDatabaseOperations):
return backend_utils.typecast_decimal(expression.output_field.format_number(value))
def convert_datefield_value(self, value, expression, connection, context):
- if value is not None and not isinstance(value, datetime.date):
- value = parse_date(value)
+ if value is not None:
+ if not isinstance(value, datetime.date):
+ value = parse_date(value)
return value
def convert_datetimefield_value(self, value, expression, connection, context):
- if value is not None and not isinstance(value, datetime.datetime):
- value = parse_datetime_with_timezone_support(value)
+ if value is not None:
+ if not isinstance(value, datetime.datetime):
+ value = parse_datetime(value)
+ if settings.USE_TZ:
+ value = value.replace(tzinfo=timezone.utc)
return value
def convert_timefield_value(self, value, expression, connection, context):
- if value is not None and not isinstance(value, datetime.time):
- value = parse_time(value)
+ if value is not None:
+ if not isinstance(value, datetime.time):
+ value = parse_time(value)
return value
def convert_uuidfield_value(self, value, expression, connection, context):
diff --git a/django/db/backends/sqlite3/utils.py b/django/db/backends/sqlite3/utils.py
deleted file mode 100644
index 6a8b3b8943..0000000000
--- a/django/db/backends/sqlite3/utils.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from django.conf import settings
-from django.utils import timezone
-from django.utils.dateparse import parse_datetime
-
-
-def parse_datetime_with_timezone_support(value):
- dt = parse_datetime(value)
- # Confirm that dt is naive before overwriting its tzinfo.
- if dt is not None and settings.USE_TZ and timezone.is_naive(dt):
- dt = dt.replace(tzinfo=timezone.utc)
- return dt