J'essaye de faire une fonction d'agrégat de django, mais je suis incapable de produire le résultat désiré.Django et agrégat: somme de valeurs distinctes?
Ce que j'ai:
income_posts.values_list('category__name','amount')
[(u'Donation', Decimal("2000.00")), (u'Paycheck', Decimal("1200.00")), (u'Donation', Decimal("1000.00"))]
Résultat souhaité:
[(u'Donation', Decimal("3000.00")), (u'Paycheck', Decimal("1200.00))]
J'ai besoin pour sommer les champs 'montant' qui ont le même category__name.
La documentation pertinente: http://docs.djangoproject.com/en/dev/topics/db/aggregation/ –
La raison pour laquelle cela fonctionne est parce que [ '.annotate()' fonctionne un peu différemment après un ' .values () '] (https://docs.djangoproject.com/en/dev/topics/db/aggregation/#values):" Cependant, lorsqu'une clause values () est utilisée pour contraindre les colonnes renvoyées Dans le jeu de résultats, la méthode d'évaluation des annotations est légèrement différente: au lieu de renvoyer un résultat annoté pour chaque résultat dans le QuerySet d'origine, les résultats d'origine sont regroupés selon les combinaisons uniques des champs spécifiés dans la clause values (). – mgalgs