Как удалить нулевое значение из словаря session cart в django
вот моя логика views.py для добавления товара в корзину сеанса
def index(request):
categoryID= request.GET.get('category')
product= request.POST.get('product')
cart=request.session.get('cart')
if cart:
quantity=cart.get(product)
if quantity:
cart[product]=quantity+1
else:
cart[product]=1
cart['product']=1
else:
cart['product']= 1
request.session['cart']=cart
print(cart)
print(product)
category=Category.get_all_categories()
if categoryID:
products = Product.get_all_products_by_id(categoryID)
else:
products=Product.get_all_products()
prddata={
'product' : products,
'cat': category,
}
return render(request,'index.html',prddata)
Я добавил два товара в корзину но когда я печатаю корзину в терминале
{'product': 1, '1': 1, '2': 4, 'null': 1}
2
[06/Nov/2021 01:10:25] "POST / HTTP/1.1" 200 13104
добавляется этот ноль, я не знаю как. Как предотвратить это или удалить его из корзины? пожалуйста, помогите.
Я не вижу здесь никакого кода, который добавляет значение 'null'
в корзину, кроме случая, когда товар имеет значение 'null'
. Чтобы убрать его, вы можете добавить следующий код в вашу функцию:
if 'null' in list(cart.keys()):
del cart['null']
Кроме того, строка cart['product']=1
выполняется в любом пути, поэтому вы можете удалить предложение else и поместить его вне любого оператора if, как показано ниже.
if cart:
quantity=cart.get(product)
if quantity:
cart[product]=quantity+1
else:
cart[product]=1
cart['product']=1