我正在使用 django 在我的电子商务网站上设置购物车功能。cart_item
在 MySQL 表中,所有项目都以 s 形式输入。
在问题之前,相关代码:
charm = False
if postdata.get('charm_sku'):
charm_sku = postdata.get('charm_sku','')
ch = get_object_or_404(Charm, sku=charm_sku)
#get products in cart
cart_products = get_cart_items(request)
product_in_cart = False
# check to see if item is already in cart
for cart_item in cart_products:
if cart_item.product.id == p.id:
if charm == True:
if cart_item.charm.id == ch.id:
# update the quantity if found
cart_item.augment_quantity(quantity)
product_in_cart = True
else:
if cart_item.charm.id == "":
# update the quantity if found
cart_item.augment_quantity(quantity)
product_in_cart = True
编辑:我修改了上面显示的代码,导致 BOTHif cart_item.charm.id
抛出 attirbuteerror: 'NoneType' object has no attribute 'id'
。在某种程度上,我认为这改善了这种情况,因为我怀疑第一个看起来“成功”的实际上是第一个if charm == True
失败的,因此从未测试过第一个if cart_item.charm.id == ch.id
。问题仍然存在:当 For 循环清楚地声明 cart_item 并且 cart_items 显然有一个魅力列和 id 分配给所述列时,为什么这会引发 AttributeError?
编辑 2:我不能从嵌套的 if 中引用 cart_item 吗?这是我唯一能想到的,但同时我觉得我应该能够,所以也许这是错误的?