Локальная переменная 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')