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.