def change_cart_status(request): cart_id = request.GET.get("cartid") cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = not cart_obj.is_select cart_obj.save() all_select = True if cart_obj.is_select: user_id = request.session.get("user_id") carts = Cart.objects.filter(c_user_id=user_id).filter(is_select=False) if carts.exists(): all_select = False data = { "msg": "ok", "status": "200", "is_select": cart_obj.is_select, "all_select": all_select, "total_price": get_total_price(request.session.get("user_id")) } return JsonResponse(data)
def change_cart_list_status(request): action = request.GET.get('action') cart_list = request.GET.get('cartlist') carts = cart_list.split('#') if action == 'select': # Cart.objects.filter(pk__in=carts).update({'is_select': True}) for cart_id in carts: cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = True cart_obj.save() elif action == 'unselect': # Cart.objects.filter(pk__in=carts).update({'is_select': False}) for cart_id in carts: cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = False cart_obj.save() data = { 'msg': 'ok', 'status': '200', 'action': action, 'total_price': get_total_price(request.session.get('user_id')) } return JsonResponse(data)
def cart(request): user_id = request.session.get('user_id') user = get_user_by_id(user_id) if not user: return redirect(reverse("axf:user_login")) # cart_set 外键对应的隐形属性, 本质上也是一个Manager对象 carts = user.cart_set.all() print(carts) all_select = True if carts.filter(is_select=False).exists(): all_select = False total_price = get_total_price(user_id) # for cart_obj in carts: # if cart_obj.is_select: # total_price += cart_obj.c_goods_num * cart_obj.c_goods.price data = { "title": "购物车", "carts": carts, "all_select": all_select, "total_price": total_price } return render(request, 'cart/cart.html', context=data)
def sub_to_cart(request): cartid = request.GET.get("cartid") # cart_obj = Cart.objects.get(pk=cartid) user_id = request.session.get('user_id') if cartid: cart_obj = Cart.objects.get(pk=cartid) else: cart_obj = Cart.objects.filter(c_user_id=user_id).filter( c_goods_id=request.GET.get("goodsid")).first() data = { "status": "200", "msg": "ok", } if cart_obj.c_goods_num == 1: cart_obj.delete() data["c_goods_num"] = 0 else: 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(request.session.get("user_id")) return JsonResponse(data)
def change_cart_list_status(request): action = request.GET.get("action") cart_list = request.GET.get("cartlist") # print(action) # # print(cart_list) carts = cart_list.split("#") if action == "select": # 选出主键在已有列表的所有元素 # Cart.objects.filter(pk__in=carts).update({"is_select": True}) for cart_id in carts: cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = True cart_obj.save() elif action == "unselect": for cart_id in carts: cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = False cart_obj.save() data = { "msg": "ok", "status": "200", "action": action, "total_price": get_total_price(request.session.get("user_id")) } return JsonResponse(data)
def sub_to_cart(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.delete() data['c_goods_num'] = 0 else: 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(request.session.get('user_id')) return JsonResponse(data)
def change_cart_status(request): cart_id = request.GET.get('cartid') cart_obj = Cart.objects.get(pk=cart_id) cart_obj.is_select = not cart_obj.is_select cart_obj.save() all_select = True if cart_obj.is_select: user_id = request.session.get('user_id') carts = Cart.objects.filter(c_user_id=user_id).filter(is_select=False) if carts: all_select = False data = { 'msg': 'ok', 'status': '200', 'is_select': cart_obj.is_select, 'all_select': all_select, 'total_price': get_total_price(request.session.get('user_id')) } return JsonResponse(data)
def cart(request): user_id = request.session.get('user_id') user = get_user_by_id(user_id) if not user: return redirect(reverse("axf:user_login")) carts = user.cart_set.all() all_select = True if carts.filter(is_select=False): all_select = False total_price = get_total_price(user_id) data = { "title": "购物车", 'carts': carts, 'all_select': all_select, 'total_price': total_price, } return render(request, 'cart/cart.html', context=data)
def make_order(request): cartlist = request.GET.get("cartlist") cart_list = cartlist.split("#") order = Order() user_id = request.session.get('user_id') order.o_user_id = user_id order.o_total_price = get_total_price(user_id) order.save() for cart_id in cart_list: ordergoods = OrderGoods() cart_obj = Cart.objects.get(pk=cart_id) ordergoods.o_goods_num = cart_obj.c_goods_num ordergoods.o_order_id = order.id ordergoods.o_goods_id = cart_obj.c_goods_id ordergoods.save() cart_obj.delete() data = { "msg": "ok", "orderid": order.id, "status": "200", } return JsonResponse(data)
def add_to_cart(request): user_id = request.session.get('user_id') user = get_user_by_id(user_id) # ## cartid = request.GET.get("cartid") data = {} if not user: # 重定向 data['status'] = "902" data['msg'] = "not login" else: # goods_id = request.GET.get("goodsid") goods_id = request.GET.get("goodsid") or Cart.objects.get( pk=cartid).c_goods_id carts = Cart.objects.filter(c_user=user).filter(c_goods_id=goods_id) if carts.exists(): cart_obj = carts.first() cart_obj.c_goods_num = cart_obj.c_goods_num + 1 cart_obj.save() else: cart_obj = Cart() cart_obj.c_goods_id = goods_id cart_obj.c_user_id = user_id cart_obj.save() data['msg'] = 'add success' data['status'] = "200" data['c_goods_num'] = cart_obj.c_goods_num data["total_price"] = get_total_price(request.session.get("user_id")) return JsonResponse(data)
def make_order(request): cartlist = request.GET.get('cartlist') cart_list = cartlist.split('#') order = Order() user_id = request.session.get('user_id') order.o_user_id = user_id order.o_total_price = get_total_price(user_id) order.save() for cart_id in cart_list: ordergoods = OrderGoods() cart_obj = Cart.objects.get(pk=cart_id) ordergoods.o_goods_num = cart_obj.c_goods_num ordergoods.o_order_id = order.id ordergoods.o_goods_id = cart_obj.c_goods_id ordergoods.save() cart_obj.delete() data = { 'msg': 'ok', 'orderid': order.id, 'status': '200', } return JsonResponse(data)