Django Объект 'NoneType' не имеет атрибута 'amount' - PullRequest
0 голосов
/ 05 марта 2020

Я получаю одну и ту же ошибку: объект «NoneType» не имеет атрибута «количество» снова и снова с тех пор, как я добавил поле суммы в свой скрипт с кодом купона.

Это мой код;

class Coupon(models.Model):
    code = models.CharField(max_length=15)
    amount = models.FloatField()

    def __str__(self):
        return self.code

А вот код get_total;

def get_total(self):
    total = 0
    amount = models.FloatField()
    for order_item in self.items.all():
        total += order_item.get_final_price()
    total -= self.coupon.amount
    return total

Я пытался решить эту проблему с помощью многочисленных решений, которые не работали. Буду очень признателен, если кто-нибудь скажет мне, что я здесь делаю не так

Ответы [ 2 ]

1 голос
/ 05 марта 2020

В своем комментарии вы говорите "get_final_price - это метод OrderItem". Я предполагаю, что когда вы говорите get_final_price, вы имеете в виду get_total.

У всех OrderItems есть купон? Если OrderItem.coupon может быть нулевым, вы должны изменить get_total на что-то вроде:

def get_total(self):
    total = 0
    amount = models.FloatField()
    for order_item in self.items.all():
        total += order_item.get_final_price()
    if self.coupon:
        total -= self.coupon.amount
    return total
0 голосов
/ 05 марта 2020

в models.py все null и пусто "true"

class Coupon(models.Model):
    code = models.CharField(max_length=15,null=True, blank=True)
    amount = models.FloatField(null=True, blank=True)

    def __str__(self):
        return self.code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...