diff options
| author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2017-12-12 19:07:01 +0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-12-12 21:57:41 -1000 |
| commit | 6fd6d8383f48ea2fe4e058725fa30529a083e9a5 (patch) | |
| tree | 3837e18f267889cd21ecbb8fedf53653f49f5ac7 /django/db | |
| parent | 30a389bd7795016d7f48bcda997e5dea5116f9bb (diff) | |
Fixed #28915 -- Prevented SQLite from truncating trailing zeros in the fractional part of DecimalField.
This reverts commit a146b65628e702a9a3ed5be21542ca45366fbb29 and adds
a test for the regression.
Diffstat (limited to 'django/db')
| -rw-r--r-- | django/db/backends/sqlite3/operations.py | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index e90cc052d0..a267d75ea4 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -1,12 +1,12 @@ import datetime import uuid +from decimal import Decimal from django.conf import settings from django.core.exceptions import FieldError from django.db import utils from django.db.backends.base.operations import BaseDatabaseOperations from django.db.models import aggregates, fields -from django.db.models.expressions import Col from django.utils import timezone from django.utils.dateparse import parse_date, parse_datetime, parse_time from django.utils.duration import duration_string @@ -208,9 +208,7 @@ class DatabaseOperations(BaseDatabaseOperations): converters.append(self.convert_datefield_value) elif internal_type == 'TimeField': converters.append(self.convert_timefield_value) - # Converter for Col is added with Database.register_converter() - # in base.py. - elif internal_type == 'DecimalField' and not isinstance(expression, Col): + elif internal_type == 'DecimalField': converters.append(self.convert_decimalfield_value) elif internal_type == 'UUIDField': converters.append(self.convert_uuidfield_value) @@ -241,8 +239,7 @@ class DatabaseOperations(BaseDatabaseOperations): def convert_decimalfield_value(self, value, expression, connection): if value is not None: value = expression.output_field.format_number(value) - # Value is not converted to Decimal here as it will be converted - # later in BaseExpression.convert_value(). + value = Decimal(value) return value def convert_uuidfield_value(self, value, expression, connection): |
