#28705 closed Bug (needsinfo)
Wrong annotation when used with QuerySet.order_by()
Reported by: | Rafael Capucho | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.11 |
Severity: | Normal | Keywords: | Annotate, ORM, Order_by |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Related to old closed ticket: https://code.djangoproject.com/ticket/25316
# Models
class Application(models.Model): package_name = models.CharField(max_length=128, null=False, blank=True) package_version_code = models.IntegerField(blank=True) package_version_name = models.CharField(max_length=64, null=False, blank=True) label = models.CharField(max_length=64, null=False, blank=True) class Meta: ordering = ['label', 'package_version_code'] class Profile(models.Model): applications = models.ManyToManyField( 'applications.Application', related_name='application_%(class)s', blank=True ) class Device(models.Model): profile = models.ForeignKey( Profile, related_name='devices', blank=True, null=True )
Attachments (1)
Change History (4)
by , 7 years ago
Attachment: | JbUyRQJ.png added |
---|
comment:1 by , 7 years ago
Component: | Uncategorized → Database layer (models, ORM) |
---|---|
Summary: | Wrong annotation when used with order_by → Wrong annotation when used with QuerySet.order_by() |
comment:2 by , 7 years ago
It looks like this section explains the behaviour: https://docs.djangoproject.com/en/1.11/topics/db/aggregation/#interaction-with-default-ordering-or-order-by
Maybe you want to use .annotate(...).order_by('label', 'latest')
instead?
comment:3 by , 7 years ago
Resolution: | → needsinfo |
---|---|
Status: | new → closed |
Also, if you can provide the output that you expected for each of the queries, that would help us understand the issue :) you can set the status to "new" again if you think there is an issue still.
Note:
See TracTickets
for help on using tickets.
Could you add a
tests.py
file that demonstrates the issue (and/or replace the screenshot in the description)? The screenshot isn't particularly friendly for someone trying to reproduce this since they have to retype everything.Did you read the aggregation topic guide to ensure that none of the documented issues there are the cause of the behavior?