Reescribir SQL sin formato como consulta Django
Estoy tratando de escribir esta consulta SQL sin procesar,
info_model = list(InfoModel.objects.raw('SELECT *,
max(date),
count(postid) AS freq,
count(DISTINCT author) AS contributors FROM
crudapp_infomodel GROUP BY topicid ORDER BY date DESC'))
como una consulta django. El siguiente intento no funciona ya que no puedo obtener campos relacionados para 'autor' y 'publicación'.
info_model = InfoModel.objects.values('topic')
.annotate( max=Max('date'),
freq=Count('postid'),
contributors=Count('author',
distinct=True))
.order_by('-max')
Con SQL sin formato puedo usar SELECT *, pero ¿cómo puedo hacer el equivalente con la consulta de Django?
El modelo es
class InfoModel(models.Model):
topicid = models.IntegerField(default=0)
postid = models.IntegerField(default=0)
author = models.CharField(max_length=30)
post = models.CharField(max_length=30)
date = models.DateTimeField('date published')
Anteriormente publiqué este problema aquíDjango Usando order_by con .annotate () y obteniendo el campo relacionado