Update 2 :
(Nachdem ich die Kommentare von OP gelesen habe), empfehle ich, ein neues Modell hinzuzufügen, um die neueste Einreichung zu verfolgen. Nennen Sie es LatestSubmission
.
Sie können dann entweder
Submission.save()
, um den Eintrag in LatestSubmission
jedes Mal neu zu erstellen / zu aktualisieren, wenn ein Benutzer eine neue Lösung für ein Problem so dass LatestSubmission
eine Zeile pro Problem-Benutzer-Einreichungskombination enthält, die auf die letzte Einreichung des Problems durch jeden Benutzer verweist. Sobald Sie dies an Ort und Stelle haben, können Sie eine einzige Abfrage auslösen:
Aktualisieren :
Da das OP Beispielcode gepostet hat, kann die Lösung nun wie folgt geändert werden:
%Vor%Ursprüngliche Antwort
Wenn keine datums- und zeitbasierten Kriterien für die Entscheidung "älter" oder "neuer" vorliegen, können Sie den Primärschlüssel ( id
) von Submission
verwenden, um die alten zu vernachlässigen.
Versuchen Sie Folgendes:
%Vor%Es wird Ihnen eine Liste von Diktaten wie diesem geben:
%Vor%enthält alle eindeutigen Paare.
Es ergibt tatsächlich Ihre übliche SELECT DISTINCT SQL-Abfrage.
Tags und Links python django django-queryset