うーん、Count
を使用しています 、Sum
を使用する必要があります 、およびvalues()
GROUP BY
に何が入るかを決定します したがって、values('datetime')
を使用する必要があります それだけ。クエリセットは次のようになります:
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'))
filter()
の順序についてはよくわかりませんが 、したがって、これである可能性があります:
values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
datetime__range=(self.dates[0], self.dates[1])
)
それなら両方試してみたいと思います。これらのクエリセットの生のクエリを表示する場合は、Queryset.query
を使用してください :
print self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()
したがって、正しいクエリを確実に取得できます。
お役に立てば幸いです。