2016-08-03 5 views
1

Ich habe eine annotierte Abfrage, in der ich die Summe der Zahlen annotiere. Ich möchte jedoch, dass das Ergebnis das Negative dieser Summe ist. Ich kann es nicht so scheinen zu tun:Wie negieren Sie ein kommentiertes Feld in Django?

Model.objects.all().annotate(total=-Sum('qty'))

Antwort

0

F Objekte, natürlich!

Model.objects.all().annotate(total=Sum(F('qty')*-1))

0

Ich weiß, es klingt verrückt, aber versuchen Sie dies:

Model.objects.all().annotate(total=0-Sum('qty')) 

Die unären Operator - ungestützt scheint, aber die binären Operator funktioniert.

+0

Eine sehr schlaue Antwort! Allerdings habe ich einige Zeitmessungen an meiner vorgeschlagenen Antwort durchgeführt und festgestellt, dass sie in meiner Anwendung schneller war als Ihre. Ich weiß deine Hilfe jedoch zu schätzen. – Bobort