У меня есть набор запросов Django с аннотацией, который хорошо работает при подсчете за год / месяц, но по какой-то причине ОДИН КОД для другой модели не работает.
Код, который работает:
usages = Usage.objects.all()
usages = usages.annotate(year=ExtractYear('usage_datetime'),
month = ExtractMonth('usage_datetime')).values('year','month').annotate(total=Count('id'))
Код, который не работает (подсчитывает только 1):
events = Event.objects.all()
events = events.annotate(year=ExtractYear('created'),
month = ExtractMonth('created')).values('year','month').annotate(total=Count('id'))
Первый выводит:
Второй не считается, как первый .... не уверен, что это может быть .... Поскольку единственная разница заключается в модели, я предполагаю, что это проблема, поэтому вот мои модели:
models.py
class Event(models.Model):
name = models.CharField(max_length=255)
created = models.DateTimeField(auto_now_add=True, editable=False)
last_updated = models.DateTimeField(auto_now=True, editable=False)
class Meta:
ordering = ('-created',)
class Usage(models.Model):
name = models.CharField(max_length=255)
usage_datetime = models.DateTimeField(auto_now_add=True)
EDIT Вот запрос, который выполняют события
SELECT django_datetime_extract('year', "EventTracker_event"."created", 'UTC') AS "year",
django_datetime_extract('month', "EventTracker_event"."created", 'UTC') AS "month",
COUNT("EventTracker_event"."id") AS "total"
FROM "EventTracker_event"
GROUP BY django_datetime_extract('year', "EventTracker_event"."created", 'UTC'),
django_datetime_extract('month', "EventTracker_event"."created", 'UTC'),
"EventTracker_event"."created"
ORDER BY "EventTracker_event"."created" DESC
Созданный по какой-то причине пробивается в группе ....