В django, как аннотировать (группировать по) дату из поля datetime с помощью MYSQL

Определяется как

class Data(models.Model):
    created_at = models.DateTimeField(default=timezone.now)
    number = models.IntegerField(default=1)

Требуется получить sum группу по date из created_at и я использовал

qs = Data.objects.values('created_at__date').annotate(sum=Sum('number'))

Приведенный выше запрос отлично работает в sqlite3, но в MySql он не сработал. В MySql возвращается один результат <QuerySet [{'created_at__date': None, 'sum': 100}]>

Исключено:

<QuerySet [
  {'created_at__date': datetime.date(2021, 7, 12), 'sum': 50}, 
  {'created_at__date': datetime.date(2021, 7, 13), 'sum': 50}
]>

Нашли решение, попробуйте этот способ:

qs = Data.objects.annotate(sum=Sum('number')).annotate(created_at__date=TruncDate('created_at')).values("created_at__date","sum")
Вернуться на верх