हम्म आप 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__()
इसलिए आप सुनिश्चित कर सकते हैं कि आपको सही प्रश्न मिले।
आशा है कि यह मदद करता है।