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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage