gpt4 book ai didi

python - 类型错误 : unsupported operand type(s) for +: 'int' and 'NoneType' return length

转载 作者:行者123 更新时间:2023-12-01 00:58:13 25 4
gpt4 key购买 nike

我的 View 方法接受值并调用评分方法,但我的终端输出此错误>

return sum(item['quantity'] for item in self.cart.values())
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

views.py

def cart_update(request):
cart = Cart(request)

quantity = request.GET.get('quantity')
product_slug = request.GET.get('product_slug')

product = Product.objects.get(slug=product_slug)
cart.add(product=product, quantity=quantity, update_quantity=True)

return JsonResponse({ # here errors
'cart_length':cart.get_length(),
'cart_total':cart.get_total_price(),
'cart_price':cart.get_price(product=product, quantity=quantity)
})

cart.py

def get_total_price(self):
return sum(Decimal(item['price']) * item['quantity'] for item in self.cart.values())

def get_price(self, product, quantity):
return quantity * Decimal(product.price)

def get_length(self):
return sum(item['quantity'] for item in self.cart.values())

我做错了什么?

最佳答案

在幕后,sum(..)将调用 +运算符来计算项目的总和。

如果 item['quantity'] 之一s 是 None ,那么当然会出现一种情况,您添加 intNone ,因此出现错误。

您可以通过过滤None来修复它(例如零):

sum(<b>filter(None,</b> (item['quantity'] for item in self.cart.values())<b>)</b>)

尽管了解一下为什么可能会有一个None这些字典中,从而防止字典被None“污染”。 s。

关于python - 类型错误 : unsupported operand type(s) for +: 'int' and 'NoneType' return length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com