def product_detail(request, id, slug): cart = Cart(request) product = get_object_or_404(Product, id=id, slug=slug, available=True) if request.method == "POST": cart_product_form = CartAddProductForm(request.POST) if cart_product_form.is_valid(): cd = cart_product_form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail') else: #product = get_object_or_404(Product, id=id, slug=slug, available=True) cart_product_form = CartAddProductForm() categories = Category.objects.all() return render( request, 'detail.html', { 'product': product, 'cart_product_form': cart_product_form, 'categories': categories })
def post(self, request, product_id): product = get_object_or_404(Product, pk=product_id) user = request.user form = CartAddProductForm(request.POST) cart, created = Cart.objects.get_or_create(user=user) items = cart.cartproduct_set.all() if form.is_valid(): quantity = form.cleaned_data['quantity'] override_quantity = form.cleaned_data['override_quantity'] if not any(item.product == product for item in items): # wyrażenie generatorowe CartProduct.objects.create(product=product, cart=cart, quantity=0) cartproduct = CartProduct.objects.get(product=product, cart__user=user) if not override_quantity: cartproduct.quantity += quantity else: cartproduct.quantity = quantity if cartproduct.quantity > product.stock: cartproduct.quantity = product.stock messages.warning( request, "Ze względu na dostępność, liczba zamówionych produktów została ograniczona" ) cartproduct.save() return redirect('cart_detail')
def post(self, request, *args, **kwargs): """Добавить товар в корзину на странице - карточка товара - Ajax""" print(request.POST) obj = ProductItem.objects.get(id=request.POST['product_id']) response_data = { 'product_id': obj.id, 'name': obj.name, 'articul': obj.articul, 'quantity': int(request.POST.get('quantity', 0)), 'price': float(obj.price) } cart = Cart(request) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=obj, quantity=cd['quantity'], is_update_qty=cd['is_update']) return HttpResponse(json.dumps(response_data), content_type="application/json")
def product_detail(request, category_slug, id, slug): category_list = Category.objects.all() category = Category.objects.get(slug=category_slug) product = get_object_or_404(Product, id=id, slug=slug) start_price = product.price * 70 / 100 end_price = product.price * 130 / 100 cart_product_form = CartAddProductForm( request.POST if request.method == 'POST' else None, product=product) similar_products = Product.objects.filter( category=category, price__range=(start_price, end_price)).exclude(id=id)[:4] title = product.name button = '<<< Back to %s' % category.name if request.method == 'POST': if cart_product_form.is_valid(): cart = Cart(request) cart.add(product=product, quantity=cart_product_form.cleaned_data['quantity'], update_quantity=False) return redirect('cart:cart_detail') return render( request, 'shop/product_detail.html', { 'product': product, 'title': title, 'similar_products': similar_products, 'category_list': category_list, 'cart_product_form': cart_product_form, 'button': button, })
def cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product, cd['quantity'], cd['update']) return redirect('cart:detail')
def cart_add(request, product_id): cart = Cart(request) # create a new cart object passing it the request object product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def CartAdd(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('main:products')
def cart_add(requset, product_id): cart = Cart(requset) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(requset.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, product_count=cd['product_count'], update_count=cd['update']) return redirect('cart:cart_detail')
def cart_add(request, product_id): """Добавить товар в корзину""" cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:CartDetail')
def cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Item, id=product_id) cart.add(item=product) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(item=product, quantity=cd['quantity'], update_quantity=cd['update']) return HttpResponseRedirect(reverse('storeapp:index'))
def cart_add(request , product_id): print('########################') cart=Cart(request) product = get_object_or_404(Product, id=product_id) form =CartAddProductForm(request.POST) if form.is_valid(): cd =form.cleaned_data quantity =cd['quantity'] update=cd['update'] cart.add(product = product, quantity = quantity ,update_quantity = update) return redirect('cart:cart_detail')
def cart_add(requset, product_id): cart = Cart(requset) #base of the product_id that is in the url we find the product from DB product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(requset.POST) if form.is_valid(): cd = form.cleaned_data #usinf def add to adding the product that is gotten from DB to cart cart.add(product=product, product_count=cd['product_count'], update_count=cd['update']) return redirect('cart:cart_detail')
def cart_update(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): c_data = form.cleaned_data cart.add( product=product, quantity=c_data['quantity'], update=c_data['update'], ) return redirect('cart:cart')
def cart_add(request, product_id): """ maxsulotni savatga qoshish va yangilash uchun korinish qismi """ cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def cart_add(request): cart = Cart(request) product = get_object_or_404(Product, id=request.POST.get('product_id')) form = CartAddProductForm(request.POST) if form.is_valid(): c_data = form.cleaned_data cart.add( product=product, quantity=c_data['quantity'], update=c_data['update'], ) return JsonResponse({'cart_total': len(cart)})
def cart_add(request, produit_id): cart = Cart(request) produit = get_object_or_404(Produit, id=produit_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add( produit=produit, quantity=cd['quantity'], update_quantity=cd['update'] ) messages.success(request, "Produit ajouté au panier avec succès") return redirect('cart:cart_detail')
def cart_add(request, product_id): """ добавления продукта в корзину и путь для показа """ cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def cart_add(request, product_id): cart = Cart(request) print("Tunde session key ---- ", Session.objects.all()) print("Tunde cookie------", request.COOKIES) print("Tunde session key-------------------------------------- ", request.session.session_key) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def CartAdd(request, product_id): cart = Cart(request) print cart product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): x = request.get_full_path() cd = form.cleaned_data cart.add(product=product, quantity=1, update_quantity=cd['update']) else: print 'lox' url = request.session['url'] print x return redirect(url)
def cart_add(request, product_id): """ Add product or update quantity in cart [[cart.py]]. """ cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], override_quantity=cd['override']) return redirect('cart:cart-detail')
def cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) cart_product_form = CartAddProductForm() if request.POST: form = CartAddProductForm(request.POST) if form.is_valid(): cart.add( product=product, quantity=form.cleaned_data['quantity'], update_quantity=form.cleaned_data['update'], ) return render(request, 'store/product/detail.html', { 'product': product, 'cart_product_form': cart_product_form, })
def cart_add(request, pk): cart = Cart(request) product = get_object_or_404(Product, id_product=pk) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data amount = cd['quantity'] + cart.check_product(pk) if amount <= MAX_AMOUNT and amount <= product.amount_storage: cart.add(product=product, quantity=cd['quantity']) elif amount > MAX_AMOUNT: cart.add(product=product, quantity=MAX_AMOUNT - cart.check_product(pk)) elif amount > product.amount_storage: cart.add(product=product, quantity=product.amount_storage - cart.check_product(pk)) cart.save() return redirect('product_detail', pk=pk)
def product_add(request, product_id): category = None categories = Category.objects.all() products = Product.objects.filter(available=True) cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.remove(product=product) cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) context = { 'category': category, 'categories': categories, 'products': products, 'cart_product_form': form } return render(request, 'shop/product/list.html', context)
def book_detail(request,slug): book = get_object_or_404(Book, slug= slug) categories = Category.objects.filter(is_active=True) related_books = Book.objects.filter(category=book.category) #delete oneself from the filter result and get the first four result related_books = related_books.exclude(id = book.id)[:4] form = CartAddProductForm() if request.method == 'POST': form = CartAddProductForm(request.POST) '''import pdb; pdb.set_trace()''' if form.is_valid(): cd = form.cleaned_data cart = Cart(request) cart.add( book= book ,quantity = cd['quantity']) return HttpResponseRedirect(reverse('cart:show_cart')) else: return render(request,'catalog/book_detail.html',{'book':book,'related_books':related_books,'categories':categories,'form':form})
def ProductView(request, id): from stores.models import Store from cart.cart import Cart product=get_object_or_404(Product, id=id) if type(product.owner)==Store: cart_product_form=CartAddProductForm(request.POST) store=get_object_or_404(Store, id=product.owner.id) cart_id=str(request.user)+str(product.owner.id) context={ 'cart_product_form':cart_product_form, 'product':product, 'store_id':product.owner.id, 'store':store, 'cart_id':cart_id } if cart_product_form.is_valid(): cd=cart_product_form.cleaned_data cart=Cart(request, cart_id) cart.add(product=product, quantity=cd['quantity'], override_quantity=cd['override']) return redirect('cart:cart_detail', cart_id=cart_id, store_id=product.owner.id) print('an error') return render(request, 'stores/product_detail.html', context) else: context={ 'product':product } return render(request, 'products/product.html', context)
def test_cart_form_with_no_quantity(self): form = CartAddProductForm({}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors, { 'quantity': ['Это поле обязательно.'], })
def test_cart_quantity_invalid_form(self): data = {'quantity': 0} form = CartAddProductForm(data=data) self.assertFalse(form.is_valid())
def test_form_without_update(self): form_data = {'quantity':100} form = CartAddProductForm(data=form_data) self.assertTrue(form.is_valid())
def test_form_is_invalid(self): form_data = {'quantity':'foo', 'update':'bar'} form = CartAddProductForm(data=form_data) self.assertFalse(form.is_valid())
def test_form(self): form_data = {'quantity':100, 'update':True} form = CartAddProductForm(data=form_data) self.assertTrue(form.is_valid())
def test_cart_form(self): form = CartAddProductForm(data={'quantity': 15}) self.assertTrue(form.is_valid())