#14462: Aggregates default to the database type instead of the field type
-----------------------------------------------+----------------------------
Reporter: WoLpH | Owner: nobody
Status: new | Milestone:
Component: Database layer (models, ORM) | Version: 1.2
Keywords: aggregate, annotate, type, coerce | Stage: Unreviewed
Has_patch: 0 |
-----------------------------------------------+----------------------------
First a little background information, I've got a couple of custom field
types which get cast right after loading the model.
So instead of a Decimal I get a Euro object with added features like
formatting and stuff like that.
However, it seems that the aggregate/annotate queries in Django do not
respect the `to_python()` method but simply cast to the type specified by
the database backend.
This can easily be fixed by modifying `convert_values()` so it returns
this:
{{{
#!python
return field.to_python(connection.ops.convert_values(value, field))
}}}
instead of
{{{
#!python
return connection.ops.convert_values(value, field)
}}}
The `convert_values()` function:
http://code.djangoproject.com/browser/django/trunk/django/db/models/sql/query.py#L298
Would this be the proper location to fix this? Either way, it has to be a
bug that the `max()` of a value returns a different type.
--
Ticket URL: <http://code.djangoproject.com/ticket/14462>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.