2017-03-20 2 views
0

Ich versuche, eine Liste von Einträgen zu summieren. Ich kann jedoch nicht herausfinden, wie ich die benötigten Zahlen extrahieren kann.Formatieren von Abfrageausgaben in Django

Jedes Mal, wenn ich laufen:

Entry.objects.aggregate(Sum('euros_sum'))

ich:

{'euros_sum__sum': Decimal('5948.48')} 

was in Ordnung ist, wenn ich die Nummer meiner Vorlage hinzufügen müssen. Allerdings brauche ich die Nummer (5948.48) von selbst, damit ich sie zu einem Formularfeld hinzufügen kann. Wie formatiere ich die Abfrage, um nur die Summe ohne die Felddetails (, usw.) auszugeben?

Was fehlt mir hier?

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

0

Die Verwendung eines Wert Alias ​​ könnte hier nützlich sein (s ist der Alias, Sie können es nennen, was auch immer Sie mögen). Beachten Sie, dass aggregate gibt ein dict, so können Sie einfach .get der aliased Wert:

d = Entry.objects.aggregate(s=Sum('euros_sum')).get('s') 
d # Decimal('5948.48') 
type(d) # <class 'decimal.Decimal'> 

oder

d = Entry.objects.aggregate(s=Sum('euros_sum')).get('s') 
str(d) # '5948.48' 
type(str(d)) # <class 'str'> 
+0

Perfect. Ich habe mich gefragt, wie ich .get assoziieren kann, danke! – grigs

+0

Oh, aktualisierte meine Antwort, um den '.get' Teil miteinzuschließen! –