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 № 1Encontré 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()