Hmm, Sie verwenden Count , sollten Sie Sum verwenden , und values() bestimmt, was in GROUP BY kommt Sie sollten also values('datetime') verwenden nur. Ihr Abfragesatz sollte in etwa so aussehen:
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'))
obwohl ich mir über die Reihenfolge des filter() nicht so sicher bin , es könnte also Folgendes sein:
values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
datetime__range=(self.dates[0], self.dates[1])
)
Ich schätze, du würdest dann beides ausprobieren wollen. Wenn Sie die rohe Abfrage dieses Abfragesatzes sehen möchten, verwenden Sie Queryset.query :
print self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()
So können Sie sicherstellen, dass Sie die richtige Abfrage erhalten.
Hoffe es hilft.