2016-05-13 5 views
0

ich Problem mit ein paar Werte in queryset mit dem gleichen Datumzeit zählen, das ist mein queryset:die gleichen Werte für Datum und Uhrzeit in queryset

energy = self.Gauge.objects.filter(place=place, **datetime_kwargs).values(*self.csv_fields).order_by('datetime') 

Das Ergebnis ist:

[{'a': 2, 'b': 3, datetime: datetime.datetime(2016, 5, 10, 0, 0)}, {'a': 4, 'b': 5, datetime: datetime.datetime(2016, 5, 12, 0, 0)}, {'a': 3, 'b': 6, datetime: datetime.datetime(2016, 5, 10, 0, 0)}, {'a': 5, 'b': 2, datetime: datetime.datetime(2016, 5, 12, 0, 0)}] 

Ich möchte zähle a und b Werte vom gleichen Zeitpunkt an, zum Beispiel:

Datum: 2016.05.10 00.00: a = 5, b = 9. ich versuche, mit Verständnis Liste:

key_values = ['datetime'] 

    for e in energy: 
     energy_by_date = {k: v for k, v in energy.items() if k in key_values} 

aber es gibt nur Daten. Wie kann ich Abfrageobjekte nach Datum gruppieren?

Antwort

1

Use "group_by" Django ORM-fähig, so etwas wie:

YourModel.objects.values('datetime').annotate(a_total=Sum('a'), b_total=Sum('b')) 
+0

Es funktioniert, vielen Dank !!! – kaja