Django: Filtert das zugehörige Objekt und entfernt Duplikate aus dem Ergebnis

8

Gegeben die folgenden Modelle:

%Vor%

Ich möchte Folgendes an eine Vorlage übergeben:

%Vor%

"Blog.objects.filter (...)" gibt jedoch dasselbe Blog-Objekt mehrmals zurück, wenn mehr als ein übereinstimmender Eintrag gefunden wird.

Wie entfernen Sie die Duplikate? Oder besser noch, fehlt mir eine einfachere Möglichkeit, die Liste der Treffer an die Vorlagen zu übergeben?

    
knipknap 30.12.2009, 12:15
quelle

2 Antworten

15

Durch das Hinzufügen von .distinct() erhalten Sie nur eindeutige Ergebnisse.

    
Ignacio Vazquez-Abrams 30.12.2009, 12:17
quelle
7

Weitere Informationen finden Sie in den APIs für QuerySet-APIs für die Funktion "distinct ()":

  

Gibt ein neues QuerySet zurück, das verwendet   SELECT DISTINCT in seiner SQL-Abfrage. Dies   entfernt doppelte Zeilen aus dem   Abfrageergebnisse.

     

Ein QuerySet wird dies standardmäßig nicht tun   Eliminiere doppelte Zeilen. In der Praxis,   das ist selten ein Problem, weil   einfache Abfragen wie   Blog.objects.all () führt das nicht ein   Möglichkeit von doppelten Ergebniszeilen.   Wenn sich Ihre Abfrage jedoch über mehrere erstreckt   Tabellen, ist es möglich, doppelt zu erhalten   Ergebnisse, wenn ein QuerySet ausgewertet wird.   Dann würden Sie distinct () verwenden.

    
James Polley 30.12.2009 12:26
quelle

Tags und Links