Hmm używasz Count
, powinieneś użyć Sum
i values()
określi, co trafi do GROUP BY
więc powinieneś użyć values('datetime')
tylko. Twój zestaw zapytań powinien wyglądać mniej więcej tak:
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'))
chociaż nie jestem pewien kolejności funkcji filter()
, więc może to być tak:
values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
datetime__range=(self.dates[0], self.dates[1])
)
Myślę, że chciałbyś wtedy spróbować obu. Jeśli chcesz zobaczyć surowe zapytanie z tych queryset, użyj Queryset.query
:
print self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()
Dzięki temu możesz mieć pewność, że otrzymasz właściwe zapytanie.
Mam nadzieję, że to pomoże.