我在处理向购物车中添加商品的功能时遇到问题:
if item.quantity >= 1:
if item.quantity > order_item.quantity:
当item.quantity
大于1时,它可以正常工作,但是当它恰好是一个时,我不能将其添加到购物车中,因为它没有传递第二个if语句。当我将其更改为if item.quantity >= order_item.quantity
时,可以添加数量1和以上的项目,但是order_item.quantity
在item.quantity
中超过1。假设商品数量为1,我可以将2加到购物车中。任何想法如何使它允许添加item.quantity >= 1
的项目,但order_item.quantity
不能超过item.quantity
。
因为您正在更新数量值之前检查order_item.quantity> item.quantity您的order_item.quantity仍然为1
所以您的第一个添加item.quantity = 1,order_item.quantity = 0
if item.quantity >= 1:
# 1 > 0 = True
if item.quantity > order_item.quantity:
第二个添加item.quantity = 1,order_item.quantity = 1
if item.quantity >= 1:
# 1 > 1 = False
if item.quantity > order_item.quantity:
# order_item.quantity = 0
order_item.quantity += 1 # order_item.quantity = 1
解决方案
# 1 > 1 = false goes to else block
if order_item.quantity > item.quantity:
order_item.quantity -= 1
messages.warning(request, 'OutOfStock')
else:
doSomething() # save the order_item or edit some properties then save up to you
您可以在检查数量时增加数量
# 1 > 1 = false goes to else block
if (order_item.quantity + 1) > item.quantity:
messages.warning(request, 'OutOfStock')
else:
doSomething() # save the order_item or edit some properties then save up to you