Skorzystałem z sugestii sfletche dotyczących używania adnotacji i omówiłem problem na kanale irc freenode.net #django.
Użytkownicy FunkyBob i jtiai pomogli mi w jego uruchomieniu.
Ponieważ dla każdego zlecenia pracy może być wiele spotkań, kiedy poprosimy je o zamówienie według spotkań, zwróci wiersz dla każdego spotkania, ponieważ nie wie, na które spotkanie zamierzałem zamówić.
from django.db.models import Max
WorkOrder.objects.annotate(max_date=Max('appointment__start')).filter(work_order_status="complete").order_by('max_date')
Więc byliśmy na właściwej ścieżce, chodziło tylko o poprawną składnię.
Dziękuję za pomoc sfletche, FunkyBob i jtiai.