Count number of records by date in Django

django, django-models, django-queryset, python

Solution

This should work (using the same MySQL specific function you used):

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

Problem

I have a model similar to the following: ``` class Review(models.Model): venue = models.ForeignKey(Venue, db_index=True) review = models.TextField() datetime_created = models.DateTimeField(default=datetime.now) ``` I'd like to query the database to get the total number of reviews for a venue grouped by day. The MySQL query would be: ``` SELECT DATE(datetime_created), count(id) FROM REVIEW WHERE venue_id = 2 GROUP BY DATE(datetime_created); ``` What is the best way to accomplish this in Django? I could just use ``` Review.objects.filter(venue__pk=2) ``` and parse the results in the view, but that doesn't seem right to me.

Original source

Related problems