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_detail(request, pk): cart = Cart(request) product_in_cart = cart.check_product(pk) check = True product = Product.objects.get(id_product=pk) if product_in_cart == MAX_AMOUNT or \ product_in_cart == product.amount_storage or not product_in_cart: check = False cart_product_form = CartAddProductForm() cart_product_form.set_amount(product.amount_storage) context = { 'product_in_cart': product_in_cart, 'check': check, 'product': product, 'cart_product_form': cart_product_form } return render(request, 'jewelry_store/product_detail.html', context)