def cart(request): # already passed loginmiddleware carts = Cart.objects.filter(c_user=request.user) is_select_all = not carts.filter(c_is_selected=False).exists() data = { 'title': 'Cart', 'carts': carts, 'is_select_all': is_select_all, 'total_price': get_total_price(), } return render(request, 'main/cart.html', context=data)
def add_shoppingcart(request): cartid = request.GET.get('cartid') cart_obj = Cart.objects.get(pk=cartid) data = { 'status': 200, 'msg': 'ok', } cart_obj.c_goods_num = cart_obj.c_goods_num + 1 cart_obj.save() data['c_goods_num'] = cart_obj.c_goods_num data['total_price'] = get_total_price() return JsonResponse(data=data)
def select_all(request): cart_list = request.GET.get("cart_list") cart_list = cart_list.split("#") carts = Cart.objects.filter(id__in=cart_list) #print(carts) for cart_obj in carts: cart_obj.c_is_selected = not cart_obj.c_is_selected cart_obj.save() data = { 'status': 200, 'msg': 'ok', 'total_price': get_total_price(), } return JsonResponse(data=data)
def sub_shoppingcart(request): cartid = request.GET.get('cartid') cart_obj = Cart.objects.get(pk=cartid) data = { 'status': 200, 'msg': 'ok', } if cart_obj.c_goods_num > 1: cart_obj.c_goods_num = cart_obj.c_goods_num - 1 cart_obj.save() data['c_goods_num'] = cart_obj.c_goods_num else: cart_obj.delete() data['c_goods_num'] = 0 data['total_price'] = get_total_price() return JsonResponse(data=data)
def change_cart_state(request): cart_id = request.GET.get('cartid') cart_obj = Cart.objects.get(pk=cart_id) cart_obj.c_is_selected = not cart_obj.c_is_selected cart_obj.save() is_select_all = not Cart.objects.filter(c_user=request.user).filter( c_is_selected=False).exists() data = { 'status': 200, 'msg': 'change ok', 'c_is_selected': cart_obj.c_is_selected, 'is_select_all': is_select_all, 'total_price': get_total_price(), } return JsonResponse(data=data)
def create_order(request): carts = Cart.objects.filter(c_user=request.user).filter(c_is_selected=True) order = Order() order.o_user = request.user order.o_price = get_total_price() # get it again at backend order.save() # create order from selected in cart for cart_obj in carts: ordergoods = OrderGoods() ordergoods.o_order = order ordergoods.o_goods_num = cart_obj.c_goods_num ordergoods.o_goods = cart_obj.c_goods ordergoods.save() cart_obj.delete() # removed cart obj data = { 'status': 200, 'msg': 'ok', 'order_id': order.id, } return JsonResponse(data=data)