关注这个问题: Count number of records by date in Django
class Review(models.Model):
venue = models.ForeignKey(Venue, db_index=True)
review = models.TextField()
datetime_visited = models.DateTimeField(default=datetime.now)
确实,以下行解决了按日期计算记录数的问题:
Review.objects.filter
.extra({'date_visited' : "date(datetime_visisted)"})
.values('date_visited')
.annotate(visited_count=Count('id'))
但是,我想要有一个明确的计数,也就是说,我想避免在同一天使用相同的ID查看对象,我该怎么办?
我试过了:
Review.objects.filter.
.extra({'date_visited': "date(datetime_visited)"})
.values('date_visited', 'id')
.distinct()
.annotate(Count('id'))
但似乎无法正常工作
答案 0 :(得分:0)
你的问题是你在你的值()中包含了id,这使得所有记录都是唯一的,从而击败了distinct()。试试这个:
Review.objects.filter.
.extra({'date_visited': "date(datetime_visited)"})
.values('date_visited')
.distinct()
.annotate(Count('date_visited'))