在Django中按日期计算记录数

我有一个类似于以下的模型:

class Review(models.Model):

venue = models.ForeignKey(Venue, db_index=True)

review = models.TextField()

datetime_created = models.DateTimeField(default=datetime.now)

我想查询数据库以获取按天分组的场所的评论总数。MySQL查询为:

SELECT DATE(datetime_created), count(id) 

FROM REVIEW

WHERE venue_id = 2

GROUP BY DATE(datetime_created);

Django中完成此操作的最佳方法是什么?我可以用

Review.objects.filter(venue__pk=2)

并在视图中解析结果,但这对我来说似乎不对。

回答:

这应该可以工作(使用与你使用的相同的MySQL特定功能):

Review.objects.filter(venue__pk=2)

.extra({'date_created' : "date(datetime_created)"})

.values('date_created')

.annotate(created_count=Count('id'))

以上是 在Django中按日期计算记录数 的全部内容, 来源链接: utcz.com/qa/412718.html

回到顶部