Django“NoneType”对象没有属性“amount”
自从我在优惠券代码脚本中添加了一个amount字段以来,我不断收到相同的错误,即“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(
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这是一种排序方法