Ich versuche, eine SUMPRODUCT Abfrage in django zu tun:"ungültig wörtliche für int() mit Basis 10" Ersten Fehler für DecimalField
merchandise_value = Product.objects.all()\
.aggregate(merch_value=Sum(F('qty_ordered')*F('msrp')))
'msrp'
ist ein DecimalField
Feld (mit 2 decimal_places
). 'qty_ordered'
ist ein IntegerField
. Auch wenn ich wie int(float(F('msrp')))
oder int(float(str(F('msrp'))))
verrückte Dinge tun bekomme ich immer noch:
invalid literal for int() with base 10: 'F(msrp)'
Andere ähnliche Fragen eine ähnliche Lösung vorzuschlagen, was ich verwendet habe. Was habe ich vermasselt? Und was noch wichtiger ist, warum gibt es einen Anruf an int()
irgendwie in diese Zeile integriert? Ich habe nicht explizit int()
genannt.
Ah, danke; Es ist hier erwähnt: https://docs.djangoproject.com/en/1.9/ref/models/expressions/#using-f-with-annotations – Escher