PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

order_by sul campo Molti-a-molti genera voci duplicate nel set di query

Ho seguito i suggerimenti forniti da sfletche sull'uso di annotate e ho discusso il problema nel canale irc di freenode.net #django.

Gli utenti FunkyBob e jtiai sono stati in grado di aiutarmi a farlo funzionare.

Poiché possono esserci molti appuntamenti per ogni ordine di lavoro, quando gli chiediamo di ordinare per appuntamento, restituirà una riga per ogni istanza di appuntamento poiché non sa con quale appuntamento intendevo ordinarlo.

from django.db.models import Max

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

Quindi, eravamo sulla strada giusta, si trattava solo di correggere la sintassi.

Grazie per l'aiuto sfletche, FunkyBob e jtiai.