I have a very basic model:
class Link(models.Model):
title = models.CharField(max_length=250, null=False)
user = models.ForeignKey(User)
url = models.CharField(max_length=250, blank=True, null=True)
link_count = models.IntegerField(default=0)
pub_date = models.DateField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
I can create a list of all the entries grouped by date using:
Link.objects.values('pub_date').order_by('-pub_date').annotate(dcount=Count('pub_date'))
This will naturally group items by day. But what I really want to do is group by month. Is there anyway I can do this using annotate()?
Many thanks,
G
If you're on PostgreSQL, the following might work:
from django.db.models import Count
Link.objects.extra(select={'month': 'extract( month from pub_date )'}).values('month').annotate(dcount=Count('pub_date'))
I'm not sure how portable extract
is across other databases.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With