Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
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)
Пример #10
0
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)
Пример #11
0
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)