Django-bedingte Annotation

8

Ich bin überrascht, dass diese Frage anscheinend noch nicht existiert. Wenn es so ist, bitte hilf mir, es zu finden.

Ich möchte annotate (Count) und order_by verwenden, aber ich möchte nicht jede Instanz eines verwandten Objekts zählen, nur diejenigen, die ein bestimmtes Kriterium erfüllen.

Um zu sagen, dass ich Schwalben nach der Anzahl der grünen Kokosnüsse listen könnte, die sie getragen haben:

%Vor%     
jMyles 09.08.2011, 18:37
quelle

2 Antworten

8

Dies sollte der richtige Weg sein.

%Vor%

Beachten Sie, dass beim Filtern nach einem verwandten Feld in Raw SQL als LEFT JOIN plus ein WHERE übersetzt wird. Am Ende wirkt die Annotation auf die Ergebnismenge, die nur die zugehörigen Zeilen enthält, die aus dem ersten Filter ausgewählt wurden.

    
rewritten 09.08.2011, 18:56
quelle
3

Für Django & gt; = 1.8:

%Vor%     
Erik Telepovský 09.11.2016 21:58
quelle