Превышена максимальная глубина рекурсии при вызове ошибки объекта Python для свойства модели
Есть проблема с моим проектом. У меня есть общая цена в моей модели и она собирается суммировать все продукты внутри toyr cart и вот свойство для модели :
@property
def total(self):
total = sum( i.price() for i in self.order_item.all())
if self.discount:
discount_price = (self.discount / 100) * total
return int(total - discount_price)
return self.total
self.discount - скидка заказа, если она была, а self.order_item - связанное имя для товаров внутри заказа.
Итак, проблема в том, что когда я пытаюсь получить общую сумму из этой модели, она выдает ошибку :
maximum recursion depth exceeded while calling a Python object
А мой код для получения итогов из модели таков :
i = order_id
amount = get_object_or_404(Order , id = i)
Также я получаю order_id из url !
Так что же здесь не так. Помогите мне пожалуйста .
Вам не следует возвращать self.total
, так как в этом случае вы получаете свойство во второй раз (и, следовательно, оно будет продолжать получать свойство). Вы должны вернуть total
, так:
@property
def total(self):
total = sum( i.price() for i in self.order_item.all())
if self.discount:
discount_price = (self.discount / 100) * total
return int(total - discount_price)
# ↓ use total, not self.total
return total