无法在Django视图中正确计算字段

时间:2014-03-03 19:34:34

标签: django django-views

我有以下型号:

class Download(models.Model):
id = models.AutoField(primary_key=True)
song = models.ForeignKey(Song)
download_date = models.DateTimeField( auto_now_add=True)

我想知道在一段时间内某些歌曲下载了多少次。

我建立的查询是:

res = Download.objects.filter(download_date__range=[date_1, date_2]).annotate(downloads = Count('id')).values('id', 'song', 'downloads')

我也尝试过计算歌曲,但没有成功。它不断返回重复的歌曲,数量为1。

2 个答案:

答案 0 :(得分:1)

试试这个:

Download.objects.filter(download_date__range=[date_1, date_2]).values('song').annotate(downloads = Count('id'))

答案 1 :(得分:0)

您必须更改order_by。这里解释https://docs.djangoproject.com/en/dev/topics/db/aggregation/#interaction-with-default-ordering-or-order-by

res = Download.objects.filter(download_date__range=[date_1, date_2])\
              .annotate(downloads=Count('song'))\
              .values('downloads', 'song')\
              .order_by()