PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

order_by im Many-to-Many-Feld führt zu doppelten Einträgen im Abfragesatz

Ich habe die von sfletche bereitgestellten Vorschläge zur Verwendung von Annotate angenommen und das Problem im freenode.net-IRC-Kanal #django diskutiert.

Die Benutzer FunkyBob und jtiai konnten mir dabei helfen, es zum Laufen zu bringen.

Da es für jeden Arbeitsauftrag viele Termine geben kann, wird, wenn wir ihn auffordern, nach Terminen zu bestellen, eine Zeile für jeden Termin zurückgegeben, da er nicht weiß, nach welchem ​​​​Termin ich bestellen wollte.

from django.db.models import Max

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

Wir waren also auf dem richtigen Weg, es ging nur darum, die Syntax zu korrigieren.

Danke für die Hilfe sfletche, FunkyBob und jtiai.