- 문제 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)
'TIL' 카테고리의 다른 글
[TIL 2024. 06. 17] 앞으로의 프로젝트 방향 (0) | 2024.06.18 |
---|---|
[TIL 2024. 06. 12] 배포 후 오류 수정 (0) | 2024.06.12 |
[TIL 2025. 06. 05] 음성인식으로 장바구니 업데이트하기 (0) | 2024.06.07 |
[TIL 2024. 06. 04] axios post | updateCartDisplay() 오류 (0) | 2024.06.05 |
[TIL 2024. 06. 03] Redis로 장바구니 update (0) | 2024.06.04 |