Превышена максимальная глубина рекурсии при вызове ошибки объекта 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
Вернуться на верх