示例#1
0
文件: views.py 项目: jazdelu/minibobi
def add(request):
	if request.GET:
		cart = ''
		product = ''
		is_exist = False
		try:
			cart = Cart.objects.get(id = request.session.get("cart"))
			product = Product.objects.get(id = int(request.GET['pid']))
		except:
			raise Http404

		item = CartItem()
		item.product = product
		item.cart = cart
		item.quantity = int(request.GET['quantity'])
		item.color  = Color.objects.get(id=int(request.GET['color']))
		item.size = Size.objects.get(id=int(request.GET['size']))

		for i in CartItem.objects.filter(cart = cart).filter(product = product):
			if i.is_same_spec(item):
				i.quantity+=item.quantity
				i.save()
				break;
		else:
			item.save()

		return HttpResponseRedirect("/cart/")
示例#2
0
 def post(self, request):
     cart_id = request.session.get("cart_id")
     data = json.loads(request.body)
     items = data['items']
     if not items:
         print("List empty")
     else:
         if cart_id == None:
             cart = Cart()
             cart.user = User.objects.get(id=data['user'])
             cart.save()
             cart_id = cart.id
             request.session['cart_id'] = cart_id
         else:
             cart = Cart.objects.get(id=cart_id)
         for item in items:
             cart_item = CartItem()
             cart_item.cart = cart
             cart_item.item = get_object_or_404(Product.objects.all(),pk=item['itemid'])
             cart_item.quantity = item['quantity']
             cart_item.save()
             cart.items.add(cart_item)
         cart.save()
         # data = serializers.serialize('json', [cart,])
         # struct = json.loads(data)
         # data = json.dumps(struct[0])
         data = CartSerializer(Cart.objects.get(id=cart.id)).data
         # data2 = CartItemSerializer(cart.cartitem_set.all()).data
         # print (d)
     return Response({'data':data})
示例#3
0
文件: views.py 项目: jazdelu/minibobi
def add(request):
    if request.GET:
        cart = ''
        product = ''
        is_exist = False
        try:
            cart = Cart.objects.get(id=request.session.get("cart"))
            product = Product.objects.get(id=int(request.GET['pid']))
        except:
            raise Http404

        item = CartItem()
        item.product = product
        item.cart = cart
        item.quantity = int(request.GET['quantity'])
        item.color = Color.objects.get(id=int(request.GET['color']))
        item.size = Size.objects.get(id=int(request.GET['size']))

        for i in CartItem.objects.filter(cart=cart).filter(product=product):
            if i.is_same_spec(item):
                i.quantity += item.quantity
                i.save()
                break
        else:
            item.save()

        return HttpResponseRedirect("/cart/")
示例#4
0
def add(request):
    if request.method == "POST" and request.user.is_authenticated:
        profile = Profile.objects.filter(user=request.user)[0]
        cart = list(
            filter(lambda x: x.is_active,
                   Cart.objects.filter(profile=profile)))
        cartItem = CartItem()
        if len(cart) > 0:
            cartItem.cart = cart[0]
        else:
            cart = Cart()
            cart.profile = profile
            cart.total = 0.0
            cart.save()
            cartItem.cart = cart
        cartItem.quantity = int(request.POST.get('id_quantity'))
        cartItem.material = request.POST.get('id_material')
        cartItem.good = Good.objects.get(id=request.POST.get('id_good_id'))
        cartItem.save()
        return redirect('/good/{0}'.format(request.POST.get('id_good_id')))
    else:
        return HttpResponseBadRequest()
示例#5
0
def add_item(request):
    product_id = request.POST.get("product_id", None)
    product = get_object_or_404(Product, id=product_id)
    if request.method == "POST" and request.is_ajax():

        if product.has_options and product.parent == None:
            return JsonResponse({"message": _("Please choose a size")})

        cart = get_cart(request)
        quantity = request.POST.get("quantity")
        if not quantity:
            quantity = 1
        quantity = int(quantity)

        if product.stock >= quantity:
            try:
                item = CartItem.objects.get(product=product, cart=cart)
            except CartItem.DoesNotExist:
                item = CartItem()
                item.cart = cart
                item.product = product

            discount = 0
            if product.discountable:
                discount = product.get_discount_price() * quantity
            gross = product.price * quantity
            item.quantity += int(quantity)
            item.discount_total += discount
            item.gross_total += gross
            item.net_total += gross - discount
            item.save()
            cart.discount_total += discount
            cart.gross_total += gross
            cart.net_total += gross - discount
            cart.save()

            product.stock -= quantity
            product.save()

            items = CartItem.objects.filter(cart=cart)

            return render(request, "cart/index-ajax.html", {"cart": cart, "items": items})
    return JsonResponse({"message": _("This item has sold out")})