1
0
mirror of https://github.com/django/django.git synced 2025-04-22 00:04:43 +00:00

[1.6.x] Fixed #23774 -- Clarified QuerySet.order_by() and related models.

Backport of 11b7680d0e from master
This commit is contained in:
Tim Graham 2014-11-12 22:00:48 +01:00
parent bcdfa0eb9a
commit b078ccf8bf

View File

@ -284,9 +284,10 @@ and so on for as many models as you want to join. For example::
Entry.objects.order_by('blog__name', 'headline')
If you try to order by a field that is a relation to another model, Django will
use the default ordering on the related model (or order by the related model's
use the default ordering on the related model, or order by the related model's
primary key if there is no :attr:`Meta.ordering
<django.db.models.Options.ordering>` specified. For example::
<django.db.models.Options.ordering>` specified. For example, since the ``Blog``
model has no default ordering specified::
Entry.objects.order_by('blog')
@ -294,7 +295,10 @@ primary key if there is no :attr:`Meta.ordering
Entry.objects.order_by('blog__id')
...since the ``Blog`` model has no default ordering specified.
If ``Blog`` had ``ordering = ['name']``, then the first queryset would be
identical to::
Entry.objects.order_by('blog__name')
Be cautious when ordering by fields in related models if you are also using
:meth:`distinct()`. See the note in :meth:`distinct` for an explanation of how