Django ORM - Obtener el último registro para el grupo
Imagina que tenemos el modelo Django ORM.Meetup
con la siguiente definición:
class Meetup(models.Model):
language = models.CharField()
date = models.DateField(auto_now=True)
Me gustaría buscar el último encuentro para cada idioma.
Parece que podrías usarDjango Agregados para hacer esta búsqueda fácil:
Meetup.objects.annotate(latest_date=Max("date")).values("language", "latest_date")
En mi opinión, esto debería obtener el "último" encuentro para cada idioma. Pero ese no es el caso:
>>> Meetup.objects.create(language='python')
<Meetup: Meetup object>
>>> Meetup.objects.create(language='python')
<Meetup: Meetup object>
>>> Meetup.objects.create(language='node')
<Meetup: Meetup object>
>>> Meetup.objects.create(language='node')
<Meetup: Meetup object>
>>> Meetup.objects.annotate(latest_date=Max("date")).values("language", "latest_date").count()
4
¡Esperaba conseguir solo las dos últimas reuniones de Python y Node!
¿Cómo puedo crear una consulta que solo obtenga las últimas reuniones para cada idioma?
PD. Estoy usando MySQL como mi backend.