Hmm du använder Count
, bör du använda Sum
, och values()
kommer att avgöra vad som ska in i GROUP BY
så du bör använda values('datetime')
endast. Din frågeuppsättning bör vara ungefär så här:
from django.db.models import Sum
values = self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data'))
även om jag inte är så säker på ordningen på filter()
, så det kan vara detta:
values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
datetime__range=(self.dates[0], self.dates[1])
)
Jag antar att du skulle vilja prova båda då. Om du vill se den råa frågan för dessa frågeuppsättningar, använd Queryset.query
:
print self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()
Så du kan se till att du får rätt fråga.
Hoppas det hjälper.