J'ai suivi les suggestions fournies par sfletche sur l'utilisation de l'annotation et j'ai discuté du problème dans le canal irc freenode.net #django.
Les utilisateurs FunkyBob et jtiai ont pu m'aider à le faire fonctionner.
Puisqu'il peut y avoir de nombreux rendez-vous pour chaque bon de travail, lorsque nous lui demandons de commander par rendez-vous, il renverra une ligne pour chaque instance de rendez-vous car il ne sait pas par quel rendez-vous je voulais qu'il commande.
from django.db.models import Max
WorkOrder.objects.annotate(max_date=Max('appointment__start')).filter(work_order_status="complete").order_by('max_date')
Donc, nous étions sur la bonne voie, il s'agissait simplement d'obtenir la syntaxe correcte.
Merci pour l'aide sfletche, FunkyBob et jtiai.