diff options
Diffstat (limited to 'django/db/backends/oracle/base.py')
-rw-r--r-- | django/db/backends/oracle/base.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index d2957ccd7a..ff1dc0d299 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -461,7 +461,7 @@ def get_query_set_class(DefaultQuerySet): def resolve_columns(self, row, fields=()): from django.db.models.fields import DateField, DateTimeField, \ - TimeField, BooleanField, NullBooleanField + TimeField, BooleanField, NullBooleanField, DecimalField values = [] for value, field in map(None, row, fields): if isinstance(value, Database.LOB): @@ -475,6 +475,9 @@ def get_query_set_class(DefaultQuerySet): # Convert 1 or 0 to True or False elif value in (1, 0) and isinstance(field, (BooleanField, NullBooleanField)): value = bool(value) + # Convert floats to decimals + elif value is not None and isinstance(field, DecimalField): + value = util.typecast_decimal(field.format_number(value)) # cx_Oracle always returns datetime.datetime objects for # DATE and TIMESTAMP columns, but Django wants to see a # python datetime.date, .time, or .datetime. We use the type |