#24986: Selecting distinct on lower() function throws AttributeError("'Func'
object
has no attribute 'column'")
-------------------------------------+-------------------------------------
Reporter: wbar | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: F(), ORM, distinct | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by jarshwah):
* version: 1.8 => master
* severity: Release blocker => Normal
* stage: Unreviewed => Accepted
Comment:
{{{
Author.objects.annotate(
name_lower=Func(F('name'), function='lower')
).distinct('name_lower')
}}}
I don't think we implemented Expression support for `distinct()`.
Accepting on that basis - it shouldn't (famous last words..) be too
difficult to implement.
> but when i write:
{{{
Author.objects.annotate(
name_lower=Func(F('name'), function='lower')
).distinct('something')
}}}
I've removed release blocker and 1.8 target, as this is a new feature not
previously available. It should be able to go into 1.9 provided there's a
patch, but I'm not sure that we'd backport a fix to 1.8.
I don't know why you'd think that'd work, especially since the error tells
you that "something" isn't actually a field on the model. Am I missing
something here?
--
Ticket URL: <https://code.djangoproject.com/ticket/24986#comment:3>
Django <https://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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/062.53e303b59b2f2a9ff6c2e7803684ee4d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.