[当数量= 1时添加到购物车中

问题描述 投票:-3回答:1

我在处理向购物车中添加商品的功能时遇到问题:

if item.quantity >= 1:
    if item.quantity > order_item.quantity:

item.quantity大于1时,它可以正常工作,但是当它恰好是一个时,我不能将其添加到购物车中,因为它没有传递第二个if语句。当我将其更改为if item.quantity >= order_item.quantity时,可以添加数量1和以上的项目,但是order_item.quantityitem.quantity中超过1。假设商品数量为1,我可以将2加到购物车中。任何想法如何使它允许添加item.quantity >= 1的项目,但order_item.quantity不能超过item.quantity

python django
1个回答
0
投票

因为您正在更新数量值之前检查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
© www.soinside.com 2019 - 2024. All rights reserved.