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

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)

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

最佳答案

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

Review.objects.filter(venue__pk=2)
    .extra({'date_created' : "date(datetime_created)"})
    .values('date_created')
    .annotate(created_count=Count('id'))

关于python - 在Django中按日期计算记录数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2278076/

10-12 18:16