def add_car(request): book_id = request.POST.get('book_id') book_count = int(request.POST.get('book_count')) print('add_car', book_count) print('add_car', book_id) # 字典方式存储book # book_list= [] # book_list.append({"id":book_id}) # request.session['car'] = book_list car = request.session.get('car') txtUsername = request.session.get('txtUsername') if txtUsername: user = TUser.objects.get(user_name=txtUsername) user_car = TCar.objects.filter(id=user.user_id) for user_book in user_car: if int(book_id) == user_book.book_id: try: user_book.goods_number = int( user_book.goods_number) + book_count user_book.save() print(user_book.goods_number) except: print('update error') if car: car.add(book_id, book_count) request.session['car'] = car for res in car.book_list: print(res.id, res.name, res.count, res.price, res.picture) else: car = Car() car.add(book_id, book_count) request.session['car'] = car for res in car.book_list: print(res.id, res.name, res.count, res.price, res.picture) return HttpResponse('添加成功')
def car(request): txtUsername = request.session.get('txtUsername') # 登录 if txtUsername: car = request.session.get('car') user = TUser.objects.get(user_name=txtUsername) user_car = TCar.objects.filter(id=user.user_id) # 外面有车 if car: if request.session.get('car'): for book in car.book_list: flag = False for user_book in user_car: if int(book.id) == user_book.book_id: try: with transaction.atomic(): if int(user_book.goods_number) > int( book.count): pass else: user_book.goods_number = int( book.count) user_book.save() flag = True except: print('update error') if not flag: try: with transaction.atomic(): TCar.objects.create(book_id=book.id, goods_number=book.count, id=user) except: print('insert1 error') else: for book in car.book_list: try: with transaction.atomic(): TCar.objects.create(book_id=book.id, goods_number=book.count, id=user) except: print('insert2 error') for user_book in user_car: flag = False for book in car.book_list: if int(book.id) == user_book.book_id: book.count = int(user_book.goods_number) flag = True if not flag: car.add(user_book.book_id, user_book.goods_number) request.session['car'] = car sum_price = 0 sum_count = 0 for i in car.book_list: sum_price = sum_price + float(i.price) * int(i.count) sum_count = sum_count + int(i.count) return render( request, 'dangdang/car.html', { 'txtUsername': txtUsername, 'car': car, 'sum_price': sum_price, 'sum_count': sum_count }) else: car = Car() for user_book in user_car: print(user_book.book_id, user_book.goods_number) car.add(user_book.book_id, user_book.goods_number) print(car) request.session['car'] = car sum_price = 0 sum_count = 0 for i in car.book_list: sum_price = sum_price + float(i.price) * int(i.count) sum_count = sum_count + int(i.count) return render( request, 'dangdang/car.html', { 'car': car, 'sum_price': sum_price, 'sum_count': sum_count, 'txtUsername': txtUsername }) elif request.session.get('car'): car = request.session.get('car') sum_price = 0 sum_count = 0 for i in car.book_list: sum_price += i.price * i.count sum_count += i.count return render(request, 'dangdang/car.html', { 'car': car, 'sum_price': sum_price, 'sum_count': sum_count }) # 未登录 外面无车 else: car = request.session.get('car') return render(request, 'dangdang/car.html', {'car': car})