Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#24881 closed Cleanup/optimization (fixed)

order_with_respect_to needs better docs

Reported by: karyon Owned by: karyon
Component: Documentation Version: 1.8
Severity: Normal Keywords:
Cc: karyon Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

the model meta option order_with_respect_to is documented (https://docs.djangoproject.com/en/1.8/ref/models/options/#order-with-respect-to), but i found the docs to be incomplete.

it says "Marks this object as “orderable” with respect to the given field. This is almost always used with related objects to allow them to be ordered with respect to a parent object." What i don't know is what it actually means for an object to be "orderable with respect to something". Also, these sentences only say that something is "marked" and they are "allowed" to be ordered. Under what circumstances does ordering actually happen? do i need to do something for a queryset of such objects to be ordered? And what does"almost always" mean, is there anything else this might be used for?

Also, i kinda expected this feature to order objects only when queried coming from the parent class, e.g.

Question.objects.first().answer_set()

but not order them when doing e.g.

Answer.objects.all()

because the ordering is only with respect to the parent object, right? that this is not the case might be worth mentioning explicitly.


I read some code and did experiments and from my point of view, what this actually does is:

  • add a "_order" field to the model
  • initializing that field when adding an instance, based on the number of other instances with the same parent (not mentioned in the docs)
  • add some convenience setters/getters for that field
  • set the "ordering"-option to that field (most important part and not mentioned in the docs)


I hope that helps!

Change History (8)

comment:1 by Tim Graham, 9 years ago

Easy pickings: set
Triage Stage: UnreviewedAccepted
Type: BugCleanup/optimization

Thanks for the suggestions. It would be even more helpful if you could submit a patch with proposed changes.

comment:2 by karyon, 9 years ago

Cc: karyon added

comment:3 by MZ, 9 years ago

Owner: changed from nobody to MZ
Status: newassigned

comment:4 by MZ, 9 years ago

Owner: MZ removed
Status: assignednew

comment:5 by karyon, 9 years ago

Owner: set to karyon
Status: newassigned

comment:6 by Tim Graham, 9 years ago

Has patch: set
Triage Stage: AcceptedReady for checkin

comment:7 by Tim Graham <timograham@…>, 9 years ago

Resolution: fixed
Status: assignedclosed

In 27c839e0:

Fixed #24881 -- Clarified Meta.order_with_respect_to documentation

comment:8 by Tim Graham <timograham@…>, 9 years ago

In aa00f482:

[1.8.x] Fixed #24881 -- Clarified Meta.order_with_respect_to documentation

Backport of 27c839e0fce99254ad61322bb827a821f832e840 from master

Note: See TracTickets for help on using tickets.
Back to Top