Verwandte Spalte zu .annotate () -Daten abrufen Django
Ich habe diesen einfachen Datensatz erstellt, um meinen Standpunkt zu verdeutlichen. Es ist ein einfaches Modell ohne weitere Beziehungen zu einem anderen Modell.
Ich muss die obigen Daten nach Topic-ID gruppieren, das maximale Datum für jede Gruppe ermitteln und dann den Autor für dieses Datum ermitteln.
info = TempModel.objects
.values('topic')
.annotate( max=Max('date'))
.order_by('-max')
urchlaufen Sie dies in einer Vorlage,
<table>
{% for item in info %}
<tr>
<td>{{ item.topicid }}</td>
<td>{{ item.max }}</td>
<td>{{ item.author }}</td>
</tr>
{% endfor %}
</table>
produziert,
Wie zeige ich die Spalte "Autor" für jedes maximale Datum an?
Ich kann dies mit einer rohen SQL-Abfrage wie folgt tun,
info = list(TempModel.objects
.raw('SELECT *, max(date) AS max
FROM crudapp_tempmodel
GROUP BY topicid
ORDER BY date DESC'))
Aber ich möchte es mit einer Django-Abfrage tun.
The Ausgang, den ich suche, ist,
Wenn dies mit einer Django-Abfrage nicht möglich ist, würde ich gerne wissen.
Vielen Dank