#22923: order_by clause missing on nested queryset
-------------------------------+--------------------
Reporter: grantjenks | Owner: nobody
Type: Bug | Status: new
Component: Uncategorized | Version: 1.6
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------
The ORDER BY clause is getting dropped on a nested queryset with the
sqlite3 database backend.
Repro steps:
models.py
{{{
from django.db import models
class Report(models.Model):
modify_time = models.DateTimeField(auto_now=True)
uuid = models.CharField(max_length=36, unique=True)
deleted = models.BooleanField(default=False)
class Measure(models.Model):
report = models.ForeignKey(Report, db_column='report_uuid',
to_field='uuid', on_delete=models.CASCADE)
}}}
python manage.py shell
{{{
In [1]: from testtest.models import Report, Measure
In [2]: reports =
Report.objects.filter(deleted=False).order_by('-modify_time')[:5]
In [3]: print reports.query
SELECT "deleteme_report"."id", "deleteme_report"."modify_time",
"deleteme_report"."uuid", "deleteme_report"."deleted" FROM
"deleteme_report" WHERE "deleteme_report"."deleted" = False ORDER BY
"deleteme_report"."modify_time" DESC LIMIT 5
In [4]: measures = Measure.objects.filter(report__in=reports)
In [5]: print measures.query
SELECT "deleteme_measure"."id", "deleteme_measure"."report_uuid" FROM
"deleteme_measure" WHERE "deleteme_measure"."report_uuid" IN (SELECT
"deleteme_report"."uuid" FROM "deleteme_report" WHERE
"deleteme_report"."deleted" = False LIMIT 5)
}}}
Note that reports.query includes the ORDER BY clause but when nested in
measures.query, it is missing.
settings.py is stock from django-admin.py in v1.6 on CPython 2.7.
--
Ticket URL: <https://code.djangoproject.com/ticket/22923>
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/053.9f9f08a7a0207ae1caa6a0b22d1a11c5%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.