Django: неподдерживаемый тип(ы) операнда для +: 'int' и 'method' в django
я пытаюсь написать функцию, которая бы возвращала общее количество корзин, но она продолжает показывать эту ошибку unsupported operand type(s) for +: 'int' and 'method' когда я закомментирую этот код total = sum([item.get_total for item in orderitems]) ошибки исчезают, но я не получаю общее количество корзин, что означает, что код необходим. Я выяснил, что это может быть из-за того, что я пытаюсь использовать Конкатенация "+" со строкой и различными типами не разрешена в Pyhton. но я не могу определить, откуда исходит ошибка!
views.py
@login_required
def cart(request):
if request.user.is_authenticated:
student = request.user.student
order, created = Order.objects.get_or_create(student=student, completed=False)
items = order.orderitem_set.all()
else:
items = []
context = {
'items': items,
'order': order,
}
return render(request, 'course/cart.html', context)
models.py
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
full_name = models.CharField(max_length=1000)
email = models.EmailField()
def __str__(self):
return self.user.username
class Order(models.Model):
student = models.ForeignKey(Student, on_delete=models.SET_NULL, null=True)
date_ordered = models.DateTimeField(auto_now_add=True)
completed = models.BooleanField(default=False, null=True, blank=True)
transaction_id = models.CharField(max_length=200, null=True, blank=True)
def __str__(self):
return self.student.user.username
# return str(self.id)
@property
def get_cart_total(self):
orderitems = self.orderitem_set.all()
total = sum([item.get_total for item in orderitems])
return total
@property
def get_cart_items(self):
orderitems = self.orderitem_set.all()
total = sum([item.quantity for item in orderitems])
return total
class OrderItem(models.Model):
course = models.ForeignKey(Course, on_delete=models.SET_NULL, blank=True, null=True)
order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
date_added = models.DateTimeField(auto_now_add=True)
quantity = models.IntegerField(default=1, null=True, blank=True)
def __str__(self):
return self.course.course_title
def get_total(self):
total = self.course.price * self.quantity
return total
traceback
File "C:\Users\Destiny\Desktop\Circus\dnextedprj\course\models.py", line 218, in get_cart_total
total = sum([item.get_total for item in orderitems])
TypeError: unsupported operand type(s) for +: 'int' and 'method'
[12/Apr/2022 23:30:45] "GET /course/user/cart HTTP/1.1" 500 185577
Вы забыли вызвать метод item.get_total()
sum([item.get_total() for item in orderitems])