Django order_by einem verwandten _set

8

Ich habe ein Modell für unsere Kunden und ein Modell für ihre Einkäufe / Bestellungen. In unserem Backend / Web Admin wollen wir die Kundenliste nach ihrer letzten Bestellung sortieren können.

Hier sehen wir im Grunde, wie unsere Modelle aussehen

%Vor%

Ich kann die letzte Bestellung jedes Kunden mit meiner get_last_order_date Funktion anzeigen, aber ich kann nicht nach dieser Funktion sortieren (oder zumindest weiß ich nicht wie). Ich habe alles versucht, was mir einfällt:

%Vor%

und viel mehr ohne Glück.

Alle Hinweise oder Hinweise würden sehr geschätzt werden.

Danke.

    
mhost 01.02.2010, 08:09
quelle

2 Antworten

13

Sie können order by nicht mit einer Funktion verwenden, da dies auf Datenbankebene geschieht. Sie könnten den Abfrage-Satz manuell mit.% Co_de% sortieren, aber dies ist nicht sehr effizient.

Ein besserer Weg wäre, die Aggregationsfunktion von Django zu verwenden, um das maximale Kaufdatum für einen Kunden zu erhalten und danach zu sortieren:

%Vor%     
Daniel Roseman 01.02.2010, 09:17
quelle
0

Sie können definitiv nicht nach Ihrer benutzerdefinierten Methode sortieren (weil Ihre Datenbank nichts davon weiß).

Nun, es scheint schwierig zu sein, das zu tun, was Sie auf der Model-Ebene wollen, also verschieben Sie es vielleicht mit python in die Ansicht und Reihenfolge, wie folgt:

%Vor%     
3lectrologos 01.02.2010 09:18
quelle

Tags und Links