Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django“NoneType”对象没有属性“amount”_Django - Fatal编程技术网

Django“NoneType”对象没有属性“amount”

Django“NoneType”对象没有属性“amount”,django,Django,自从我在优惠券代码脚本中添加了一个amount字段以来,我不断收到相同的错误,即“NoneType”对象没有属性“amount” 这是我的密码 class Coupon(models.Model): code = models.CharField(max_length=15) amount = models.FloatField() def __str__(self): return self.code 这是get_总代码 def get_total(

自从我在优惠券代码脚本中添加了一个amount字段以来,我不断收到相同的错误,即“NoneType”对象没有属性“amount”

这是我的密码

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

    def __str__(self):
        return self.code
这是get_总代码

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

我一直在尝试用许多无效的解决方案来解决这个问题。如果有人能告诉我在models.py中我做错了什么,我将不胜感激

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

在你的评论中,你说获取最终价格是OrderItem的一种方法。我想当你说“最终价格”时,你的意思是“总价格”

所有订购物品都有优惠券吗?如果OrderItem.优惠券可以为空,则必须将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

get_total是优惠券类的一种方法吗?您可能需要self.amount而不是self.coupon.amount。另外,在get_total?get_final_price中amount=models.FloatField的用途是什么?get_final_price是OrderItem的一种方法。我也用self试过了,但没用。它给了我这个错误;'Order'对象没有属性'amount'我也忘记了amount=models.FloatField,当我试图找到解决方案时,它仍然不起作用。更正我的意思是get_total是一种Order方法。你的意思是网页或终端上的错误吗?网页将是greataAttributeError at/Order summary/'NoneType'对象没有属性“金额”请求方法:获取请求URL:Django版本:2.2异常类型:AttributeError异常值:“非类型”对象没有属性“金额”异常位置:F:\Users\Kasutaja\Documents\veebood v4\Django-ecommerce\core\models.py在GET\u-total中,第107行是的对不起,我的意思是GET\u-total这是一种排序方法