Die Funktion, die Sie wirklich für Ihre Suche ist GROUP BY. Django unterstützt jedoch normalerweise nicht die Erstellung von Abfragegruppen, die keine Modellinstanzen direkt ausgeben. In dieser Situation haben Sie zwei approachs:
Baz.objects.values('owner').distinct()
Dies werden Sie jeden einzelnen Eigentümer Netz, aber nicht die Baz selbst widersprechen.
Baz.objects.filter(pk__in=Baz.objects.values('owner').distinct())
Die oben wird eine Unterabfrage (zumindest in MySQL) durchführen und sollten die beabsichtigten Ergebnisse geben, aber es ist nicht der effizienteste Weg, um es abzurufen.
Schließlich, da Aggregate hinzugefügt wurden, können Sie möglicherweise eine benutzerdefinierte Aggregatklasse schreiben, die als eine Art "Distinct" und einfach "GROUP BY" funktionieren würde.
Wenn Sie also ein QuerySet von Baz angeben, möchten Sie es so filtern, dass keine zwei vom QuerySet zurückgegebenen Objekte dasselbe Benutzerobjekt wie der Eigentümer haben. Ist es das was du willst? – ayaz
Klingt, als ob Sie die Idee hätten –