Как удалить нулевое значение из словаря 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
Вернуться на верх