05-购物车功能实现

作者: 文子轩 | 来源:发表于2018-06-10 22:28 被阅读2次

一 定义模型类

  • 定义三个数据,分别是做user,goods,count的外键

    model. py
    class CartInfo(models.Model):
      user=models.ForeignKey('df_user.UserInfo')
      goods=models.ForeignKey('df_goods.GoodsInfo')
      count=models.IntegerField(default=0)
    
  • 定义views页面函数,使其可以传送数据

     views.py
     @islogin
     def cart(request):
         uid = request.session['user_id']
         carts = CartInfo.objects.filter(user_id=uid)
         lenn = len(carts)
         context={'title':'购物车',
                  'page_name':1,
                  'carts':carts,
                  'len':lenn}
         return render(request,'df_cart/cart.html',context)
    
     #添加商品
     @islogin
     def add(request,gid,count):
         #用户uid购买了gid商品,数量为count
         uid=request.session['user_id']
         gid = int(gid)
         count = int(count)
         #查询购物车是否已经有此商品,有则增加
         carts = CartInfo.objects.filter(user_id=uid, goods_id=gid)
         if len(carts)>=1:
             cart=carts[0]
             # print '*'*10
             # print cart  -> 购物车商品数量
             cart.count=cart.count+count
         else:#不存在则直接加
             cart=CartInfo()
             cart.user_id=uid
             cart.goods_id=gid
             cart.count=count
         cart.save()
         count_s = CartInfo.objects.filter(user_id=uid).count()
         request.session['count'] = count_s
         #如果是ajax请求则返回json,否则转向购物车
         if request.is_ajax():
             # count=CartInfo.objects.filter(user_id=request.session['user_id']).count()
    
             print ('*'*10)
             print ('ajax')
             #--------------未使用
             return JsonResponse({'count':count_s})
         else:
             return redirect('/cart/')
    
     @islogin
     def edit(request,cart_id,count):
         try:
             cart=CartInfo.objects.get(pk=int(cart_id))
             count1=cart.count=int(count)
             cart.save()
             data={'ok':0}
         except Exception as e:
             data={'ok':count1}
         return JsonResponse(data)
    
     @islogin
     def delete(request,cart_id):
    
         # try:
         cart = CartInfo.objects.get(pk=int(cart_id))
         cart.delete()
         # print '*'*10
         # print ('delete')
         # data={'ok':1}
         # except Exception as e:
         count = CartInfo.objects.filter(user_id=request.session['user_id']).count()
         request.session['count'] = count
         data={'count':count}
         # print '*' * 10
         # print (count)
         return JsonResponse(data)

相关文章

  • 05-购物车功能实现

    一 定义模型类 定义三个数据,分别是做user,goods,count的外键model. pyclass Cart...

  • 微信小程序-template使用:实现购物车商品数量加减功能

    前言 上一篇我们实现了购物车功能,里面有用到template模板功能来实现购物车商品数量加减和价格计算功能,可能篇...

  • day11购物车10-细节完善

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车08-代理的简单实现

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11-购物车06-清空和购买

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车07-KVO的应用

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车09-代理设计模式

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • Angular学习第四天

    今天我们来做一下电商网站常见的购物车功能 实现功能,购物车相信大家都熟悉 显示商品列表 商品添加进购物车 购物车内...

  • 购物车模块实现

    1、购物车列表功能实现 点击加入购物车或者点击购物车图标后进入购物车页面,在购物车页面中首先渲染cartList的...

  • 购物车的实现

    购物车是每个商城类的app必备的实现功能,然而购物车模块实现起来并不简单,需要考虑的地方也比较多,当初我实现起来也...

网友评论

    本文标题:05-购物车功能实现

    本文链接:https://www.haomeiwen.com/subject/tjsfeftx.html