Opened 16 years ago
Closed 16 years ago
#7256 closed (fixed)
extra() does not play well with values()
Reported by: | Nicolas Lara | Owned by: | Nicolas Lara |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Keywords: | qsrf-cleanup extra values | |
Cc: | jdunck@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When using extra() on a ValuesQuerySet or aplying values to a queryset with extra_select, the selection done by extra() is not preserved
>>> Book.objects.all().values().extra(select={'price_per_page' : 'price / pages'}).get(pk=1) {'id': 1, 'isbn': u'159059725', 'name': u' The Definitive Guide to Django: Web Development Done Right', 'pages': 447, 'price': 30.0, 'publisher_id': 1} >>> Book.objects.all().extra(select={'price_per_page' : 'price / pages'}).values().get(pk=1) {'id': 1, 'isbn': u'159059725', 'name': u' The Definitive Guide to Django: Web Development Done Right', 'pages': 447, 'price': 30.0, 'publisher_id': 1}
while:
>>> Book.objects.all().extra(select={'price_per_page' : 'price / pages'}).get(pk=1).__dict__ {'id': 1, 'isbn': u'159059725', 'name': u' The Definitive Guide to Django: Web Development Done Right', 'pages': 447, 'price': 30.0, 'price_per_page': 0.067114093959731502, 'publisher_id': 1}
I am assigning the ticket to myself, but wont work on it until after aggregation is stable (also im waiting for it to be 'Accepted').
Attachments (1)
Change History (6)
comment:1 by , 16 years ago
Keywords: | qsrf-cleanup added |
---|
comment:2 by , 16 years ago
Has patch: | set |
---|
I was about to un-claim the ticket but decided to check the code a bit before doing it. Turns out it was a really simple fix.
by , 16 years ago
Attachment: | extra_values.diff added |
---|
comment:3 by , 16 years ago
Cc: | added |
---|
comment:4 by , 16 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:5 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Marking as qsrf-cleanup since it seems to be a problem introduced with the QSRF changes. Just getting more eyes on DB-related stuff.