diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2015-04-12 14:46:24 +0200 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2015-05-17 09:36:23 +0200 |
| commit | ec186572e6cfde4cd4bc1491ff552c5d32211d9f (patch) | |
| tree | 84bfb6b786f7dfecc535347a14284032bf0a5370 /django/db/backends/sqlite3 | |
| parent | eda12ceef16aa1a98567e25be619b05a5b3c5757 (diff) | |
Removed global timezone-aware datetime converters.
Refs #23820.
Diffstat (limited to 'django/db/backends/sqlite3')
| -rw-r--r-- | django/db/backends/sqlite3/base.py | 11 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/operations.py | 21 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/utils.py | 11 |
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 |
