コード例 #1
0
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)
コード例 #2
0
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)