Hmm, vous utilisez Count , vous devez utiliser Sum , et values() déterminera ce qui se passe dans GROUP BY vous devez donc utiliser values('datetime') seul. Votre jeu de requêtes devrait ressembler à ceci :
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'))
bien que je ne sois pas sûr de l'ordre du filter() , donc ça pourrait être ça :
values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
datetime__range=(self.dates[0], self.dates[1])
)
Je suppose que vous voudriez essayer les deux alors. Si vous voulez voir la requête brute de ces ensembles de requêtes, utilisez Queryset.query :
print self.model.objects.filter(
datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()
Ainsi, vous pouvez vous assurer d'obtenir la bonne requête.
J'espère que ça aide.