この生の SQL クエリを書き込もうとしていますが、
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'))
django クエリとして。「著者」と「投稿」の関連フィールドを取得できないため、次の試行は機能しません。
info_model = InfoModel.objects.values('topic')
.annotate( max=Max('date'),
freq=Count('postid'),
contributors=Count('author',
distinct=True))
.order_by('-max')
生の SQL では SELECT * を使用できますが、Django クエリで同等のことを行うにはどうすればよいでしょうか?
モデルは、
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')
以前、この問題をここに投稿しましたDjango Using order_by with .annotate() and gets related field