sql >> Base de Datos >  >> RDS >> PostgreSQL

order_by en el campo Muchos a muchos da como resultado entradas duplicadas en el conjunto de consultas

Tomé las sugerencias proporcionadas por sfletche sobre el uso de anotaciones y discutí el problema en el canal IRC de freenode.net #django.

Los usuarios FunkyBob y jtiai pudieron ayudarme a hacerlo funcionar.

Dado que puede haber muchas citas para cada orden de trabajo, cuando le pedimos que ordene por citas, devolverá una fila para cada instancia de cita, ya que no sabe para qué cita tenía la intención de ordenar.

from django.db.models import Max

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

Entonces, estábamos en el camino correcto, solo se trataba de obtener la sintaxis correcta.

Gracias por la ayuda sfletche, FunkyBob y jtiai.