PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

order_by no campo Muitos para Muitos resulta em entradas duplicadas no conjunto de consultas


Peguei sugestões fornecidas pelo sfletche sobre o uso de anotação e discuti o problema no canal freenode.net irc #django.

Os usuários FunkyBob e jtiai foram capazes de me ajudar a fazê-lo funcionar.

Como pode haver muitos compromissos para cada ordem de serviço, quando pedimos para pedir por compromissos, ele retornará uma linha para cada instância de compromisso, pois não sabe em qual compromisso eu pretendia que ele fizesse o pedido.
from django.db.models import Max

WorkOrder.objects.annotate(max_date=Max('appointment__start')).filter(work_order_status="complete").order_by('max_date')

Então, estávamos no caminho certo, tratava-se apenas de obter a sintaxe correta.

Obrigado pela ajuda, FunkyBob e jtiai.