/ / ¿Cómo puedo escribir una consulta de Django para agregar la entrada más reciente de cada autor de un blog colectivo? - python, django, django-models, django-queryset

¿Cómo puedo escribir una consulta de Django para agregar la entrada más reciente de cada autor de un blog colectivo? - python, django, django-models, django-queryset

Supongamos los siguientes modelos simplificados:

class Blog(models.Model):
name = models.CharField()

class Author(models.Model):
blog = models.ForeignKey("Blog", related_name="authors")

class Entry(models.Model):
author = models.ForeignKey("Author", related_name="entries")
published_on = models.DateTimeField(auto_now_add=True)

Dada la clave principal de un blog en particular, ¿cómo puedo recuperar un queryset de entradas de tal manera que el queryset contenga solo la entrada más reciente de cada autor?

Respuestas

1 para la respuesta № 1

Encontré la respuesta aquí:

Consulta Django que obtiene los objetos más recientes de diferentes categorías.

authors = Author.objects.annotate(latest_entry_published_on=Max("entries__published_on"))
entries = Entry.objects.filter(published_on__in=[a.latest_entry_published_on for a in authors])

0 para la respuesta № 2

Intenté algo como:

Entry.objects.order_by("-published_on").values_list("author_id").distinct()