Как суммировать переменные в модели django
В данном примере у меня есть следующая модель в django:
class Test(models.Model):
name = models.models.ForeignKey('auth.user')
amount = models.IntegerField()
in this example i have 4 instances:
test1 = Test("John",10)
test2 = Test("John",20)
test3 = Test("Eric, 30)
test4 = Test("Eric, 40)
я хочу получить список кортежей, содержащих пользователя и общую сумму.
testlist = (("john", 30), ("Eric", 70))
я попробовал метод aggregate, но тогда я получаю общую сумму всех экземпляров
Вы можете использовать этот код:
all_tests = Test.objects.all()
test_dict = {}
for test in all_test:
username = test.name.username
if username in test_dict:
test_dict[username] += test.amount
else:
test_dict[username] = test.amount
потом, если хотите, можете преобразовать dict в нужный вам формат