うーん、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__()
したがって、正しいクエリを確実に取得できます。
お役に立てば幸いです。