Django: неподдерживаемые типы операндов для +: 'int' и 'str'
Я хочу просуммировать все поля модели с помощью функции aggregate(sum()), но получаю эту ошибку.
Views.py
def paymentdailyreport(request):
cashsum= Payment.objects.filter(PaymentMethod="Cash").aggregate(sum('Amount'))
print(cashsum)
context={
}
return render(request,'paymentdailyreport.html',context)
Models.py
class Payment(models.Model):
Date=models.CharField(max_length=20)
User=models.CharField(max_length=50)
PatientName=models.CharField(max_length=50)
Dentist=models.CharField(max_length=50)
Scheme=models.CharField(max_length=50)
PaymentMethod=models.CharField(max_length=50)
Amount=models.DecimalField(max_digits=20,decimal_places=3)
def __str__(self):
return self.Date + " | " + self.User + " | " + self.PatientName
Вы не можете использовать встроенный sum
для суммирования значений: вы определяете сумму с помощью выражения Sum
[Django-doc]:
from django.db.models import Sum
def paymentdailyreport(request):
# use Sum instead of sum ↓
cashsum= Payment.objects.filter(PaymentMethod="Cash").aggregate(Sum('Amount'))
print(cashsum)
context={
'cashsum': cashsum
}
return render(request,'paymentdailyreport.html',context)