我有一个类似于以下的模型:
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'))