python项目_闪送超市的购物车加入和删除商品

foodtypes

加入/抹掉购物车中的该商品

在这里插入图片描述

market.js

思路:用户点击+(or - )按钮时,前台发送ajax异步请求

    $(".subShopping").click(function () {
        var $sub_button = $(this);
        var span_num = $sub_button.next("span").html();
        if(span_num == "0"){  //每个商品的默认值为0
            alert("购物车中本无此商品!");
            return;    
        }
        var goodsid = $sub_button.attr('goodsid');
        $.get('/axf/subfromcart/', {'goodsid': goodsid}, function (data) {
            console.log(data);
			// 这部分内容则是由axfmiddleware.py 执行后返回的结果(当浏览器发送的url是/axf/subfromcart/,则先进入中间件相关的处理函数process_request())
            if (data['status'] === 302){  // 未登录
                window.open('/axf/login/', target="_self");
            }else if(data['status'] === 200){
                $sub_button.next('span').html(data['c_goods_num']);   // 将减按钮紧邻后面的(同辈)元素中的内容    设置为商品在购物车中的数量
            }
        })
        //
    })

注意:
var goodsid = $add.attr(“goodsid”); // 可以获得用户自定义的属性
var goodsid = $add.prop(“goodsid”); //只能获得该标签的自带属性

view.py

   
    def sub_from_cart(request):
    	"""
    	1.能够由sub_from_cart处理的状态码都是200,不然直接被中间件挡回去从购物车中减去商品
		2.通过商品goodsid 查找当前用户的购物是否有该商品
		3.>1 就会返回nums-1 的data
		4.=0 直接从购物车中清除该商品,更新data 和数据库
		
		"""
        goodsid = request.GET.get("goodsid")  # 接收附加在按钮上的商品id
        carts = Cart.objects.filter(user=request.user).filter(goods_id=goodsid)
        cart = carts.first()
    
        data = {
            "status": 200,
        }
    
        if cart.cart_goods_num > 1:
            cart.cart_goods_num = cart.cart_goods_num - 1   # 购物车中该商品的数量减一
            cart.save()
            data["c_goods_num"] = cart.cart_goods_num
            
        else:   #  如果该商品在购物车中只有一个
            cart.delete()  # 删除该条购物车记录
            data["c_goods_num"] = 0
    
        return JsonResponse(data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值