Локальная переменная Django 'cart' ссылается до присвоения

я пытаюсь добавить товар в корзину и затем перенаправить на страницу/url 'cart', но когда я выбираю кнопку добавить в корзину, я получаю эту ошибку

UnboundLocalError at /cart/add_cart/3/

локальная переменная 'cart' ссылается перед присвоением

это функция для получения идентификатора корзины :

def _cart_id(request):
    cart = request.session.session_key
    if not cart:
        cart = request.session.create()
   
    return cart

вот функция для добавления товара в корзину и перенаправления на страницу корзины:

def add_cart(request, product_id):
    product = Product.objects.get(id=product_id)

    try:
        cart = Cart.objects.get(cart_id=_cart_id(request)) #use cart_idin session to get cart
    except Cart.DoesNotExist:
        cart = cart.objects.create(
            cart_id = _cart_id(request)
        )
    cart.save()

    try:
        cart_item = CartItem.objects.get(product=product, cart=cart)
        cart_item.quantity += 1
        cart_item.save()
    except CartItem.DoesNotExist:
        cart_item = CartItem.objects.create(
            product = product,
            quantity = 1,
            cart = cart,
        )
        cart_item.save()
    return redirect('cart')
Вернуться на верх