예제 #1
0
def add_cart(request):
    try:
        with transaction.atomic():
            book_id = request.POST.get('book_id')
            number = request.POST.get('num', '1')
            cart = request.session.get('cart')
            if str(number).isdigit() and int(number) in range(1, 201):
                if request.session.get('login_status'):
                    username = request.session.get('username')
                    if '@' in username:
                        user_id = TUser.objects.filter(username=username)[0].id
                    else:
                        user_id = TUser.objects.filter(phone_number=username)[0].id

                    user_book = TShoppingCart.objects.filter(book_id=int(book_id), user_id=user_id)
                    if user_book:
                        user_book[0].quantity += int(number)
                        user_book[0].save()
                    else:
                        TShoppingCart.objects.create(quantity=int(number), book_id=int(book_id), user_id=user_id)
                else:
                    if cart:
                        cart.add_book(int(book_id), int(number))
                        request.session['cart'] = cart
                    else:
                        cart = Cart()
                        cart.add_book(int(book_id), int(number))
                        request.session['cart'] = cart
                return JsonResponse({'msg': '添加成功,快去购物车看看吧^_^!', 'status': 1})
            return JsonResponse({'msg': '添加失败,添加的数量要在1-200之间', 'status': 0})
    except Exception as error:
        print(error)
        return HttpResponse('哎呀!服务器出错了~')
예제 #2
0
def put_off(request):
    # 先将订单中要放回购物车的书放到session中
    id = request.GET.get('id')
    count = request.GET.get('count')
    local_cart = request.session.get('cart')
    if local_cart:
        pass
    else:
        local_cart = L_cart()  # 创建新的本地购物车
    with transaction.atomic():
        local_cart.add_book(id=id, count=count)
        request.session['cart'] = local_cart
        return HttpResponse('已将所选书籍放回到购物车中')
예제 #3
0
def add_book(request):
    # 判断登陆状态
    cookie_uid = request.COOKIES.get('uid')
    user = ''
    if cookie_uid:
        user = User.objects.get(id=cookie_uid)
    else:
        session_user = request.session.get('user')
        if session_user:
            user = session_user

    id = int(request.GET.get('id'))  # 获取书的id
    count = int(request.GET.get('count'))  # 获取添加书的数量

    try:
        if user:
            book = U_cart.objects.filter(cart_uid=user.id,
                                         cart_bid=id)  # 获取购物车中所存放的书
            if book:  # 如果该书存在
                with transaction.atomic():
                    book[0].number += count  # 书的数量变化
                    book[0].save()
            else:  # 不存在
                book = Book.objects.get(id=id)  # 获取到书的对象
                with transaction.atomic():
                    U_cart.objects.create(number=count,
                                          cart_uid=user,
                                          cart_bid=book)  # 向购物车中添加书
        else:
            local_cart = request.session.get('cart')
            if local_cart:
                pass
            else:
                local_cart = Cart()  # 创建新的本地购物车
            with transaction.atomic():
                local_cart.add_book(id=id, count=count)
                request.session['cart'] = local_cart
        return HttpResponse('已添加' + str(count) + '本书籍')
    except Exception as e:
        print(e)
        return HttpResponse('出错了')