본문 바로가기

TIL

[TIL 2024. 06. 07] elder관련 오류 수정

  • 문제 1: 장바구니에 해당 메뉴가 없을 때 메뉴를 추가하려고 할 경우 에러가 발생
    • 원인: 기존 로직이 해당 메뉴가 장바구니에 있는지 확인 후 해당 메뉴의 수량을 변경하는 방식이었음
    • 해결: 분기 처리를 통해 해당 메뉴가 없을 경우 add_to_cart()와 같은 로직으로 저장하고, 해당 메뉴가 있다면 그 메뉴를 가져와 수량만 변경하는 로직으로 수정해줌
            if name not in current_cart_get: ##분기처리 추가
                store_id = request.user.id
                menu = Menu.objects.get(store_id = store_id, food_name = name)
                image = menu.img
                price = menu.price
                quantity = result[0]
                item = CartItem(image, name, price, quantity)
                serializer = CartSerializer(item)
                get_menu = serializer.data
            else:  ##else없이 했더니 자료형식으로 오류
                get_menu = json.loads(current_cart_get[name])
                
            get_menu["quantity"] = result[0]

 

 


  • 문제 2: 장바구니에 담긴 후 음성으로 해당 메뉴를 삭제할 경우 수량이 0인 채로 장바구니에 남아있는 오류
    • 원인: 수량이 0일 때 해당 메뉴를 삭제하는 로직을 넣지 않음
    • 해결: 조건문을 추가하여 수량이 0일 경우 해당 메뉴를 삭제, 이외의 경우 장바구니에 더해주는 로직으로 수정
      • 수량이 str으로 저장되어 if를 타지 않는 것을 수정해줌
cart = Cart(username)
if get_menu["quantity"]=='0' or 0:  ##'0'(str)로 되어있어서 오류 발생
    cart.remove(get_menu["menu_name"])
else:
    cart.add_to_cart(get_menu)