def add_to_cart_view(request): """ добавление товара в корзину """ try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины product_slug = request.GET.get('product_slug') product = Product.objects.get(slug=product_slug) cart.add_to_cart(product.slug) # вызов функции которую добавили в класс new_cart_total = 0.00 for item in cart.items.all(): new_cart_total += float(item.item_total) cart.cart_total = new_cart_total cart.save() return JsonResponse({ 'cart_total': cart.items.count(), 'cart_total_price': cart.cart_total })
def remove_from_cart_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) product_slug = request.GET.get('product_slug') product = Product.objects.get(slug=product_slug) cart.remove_from_cart(product.slug) new_cart_total = 0 for item in cart.items.all(): new_cart_total += float(item.item_total) cart.cart_total = new_cart_total cart.save() return JsonResponse({ 'cart_total': cart.items.count(), # ключ-значение, где ключ используется в шаблоне 'cart_total_price': cart.cart_total })
def cart_creation(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except (ObjectDoesNotExist, KeyError): cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) return cart
def cart_create(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) return cart
def checkout_view(request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.item.count() except: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) context = {"cart": cart} return render(request, "checkout.html", context)
def cart_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) context = {'cart': cart} return render(request, 'cart.html', context)
def cart(self, request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.item.count() except: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) return cart
def order_create_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) form = OrderForm(request.POST or None) context = {"form": form} return render(request, 'order.html', context)
def base_view(request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.items.count() except KeyError: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) form = ProductFilterForm(request.GET) categories = Category.objects.all() if form.is_valid(): products = Product.objects.all() if form.cleaned_data["min_price"]: products = products.filter(price__gte=form.cleaned_data["min_price"]) if form.cleaned_data["max_price"]: products = products.filter(price__lte=form.cleaned_data["max_price"]) if form.cleaned_data["min_amp"]: products = products.filter(amper__gte=form.cleaned_data["min_amp"]) if form.cleaned_data["max_amp"]: products = products.filter(amper__lte=form.cleaned_data["max_amp"]) context = { "categories": categories, "products": products, "cart": cart, "form": form, } if form.cleaned_data["min_price"] is None and form.cleaned_data["max_price"] is None \ and form.cleaned_data["min_amp"] is "" \ and form.cleaned_data["max_amp"] is "": n_products = Product.objects.all().count() if n_products >= 6: s_products = sample(range(1, n_products), 6) products = Product.objects.filter(id__in=s_products) else: products = Product.objects.all() context = { "categories": categories, "products": products, "cart": cart, "form": form, } return render(request, "base.html", context) else: return render(request, "search.html", context)
def get_cart_order(request): try: cart_order_id = request.session['cart_order_id'] cart = Cart.objects.get(id=cart_order_id) request.session['order_total'] = cart.item.count() except: cart = Cart() cart.cart_total = Order.objects.get( id=request.session['order_id']).total cart.save() cart_order_id = cart.id request.session['cart_order_id'] = cart_order_id cart = Cart.objects.get(id=cart_order_id) return cart
def product_view(request, product_slug): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) product = Book.objects.get(slug=product_slug) categories = Category.objects.all() context = {'product': product, 'categories': categories, 'cart': cart} return render(request, 'product.html', context)
def order_create_view(request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.item.count() except: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) form = OrderForm(request.POST or None) categories = Category.objects.all() context = {"form": form, "cart": cart, "categories": categories} return render(request, "order.html", context)
def home_page(request): categories = Category.objects.all() try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) product = Product.objects.all().filter(available=True) context = {'cart': cart, 'categories': categories, 'product': product} return render(request, 'ecomapp/home.html', context)
def base_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) categories = Category.objects.all() products = Product.objects.all() context = {'categories': categories, 'products': products, 'cart': cart} return render(request, 'base.html', context)
def checkout_view(request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.items.count() except KeyError: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) categories = Category.objects.all() context = { "cart": cart, "categories": categories, } return render(request, "checkout.html", context)
def change_item_qty(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) qty = request.GET.get('qty') item_id = request.GET.get('item_id') cart_item = CartItem.objects.get(id=int(item_id)) cart_item.qty = int(qty) cart_item.item_total = int(qty) * Decimal(cart_item.product.price) cart_item.save() new_cart_total = 0.00 for item in cart.items.all(): new_cart_total += float(item.item_total) cart.cart_total = new_cart_total cart.save() return JsonResponse({ 'cart_total': cart.items.count(), 'item_total': cart_item.item_total, 'cart_total_price': cart.cart_total })
def checkout_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины categories = Category.objects.all() context = { 'cart': cart, 'categories': categories, } return render(request, 'checkout.html', context)
def base_view(request): try: cart_id = request.session[ 'cart_id'] #присваиваем корзине значение текущей сессии по ключу cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count( ) #значение товаров которые есть в корзине except: #иначе cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) categories = Category.objects.all( ) # каждый раз при создании модели у нее появляется менеджер = objects, (objects = models.Manegar) у него по умолчанию есть такие методы (у Менеджара) как all, filter, order_by например product = Product.objects.all() # возвращает все объекты продуктов context = {'categories': categories, 'products': product, 'cart': cart} return render(request, 'base.html', context)
def view_cart(request): product = Product.objects.all().filter(available=True) try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) context = { 'cart': cart, 'product': product, } return render(request, 'ecomapp/cart.html', context)
def product_detail(request, slug): product = Product.objects.get(slug=slug) categories = Category.objects.all() try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) context = { 'product': product, 'categories': categories, 'cart': cart, } return render(request, 'ecomapp/product_detail.html', context)
def category_view(request, category_slug): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) category = Category.objects.get(slug=category_slug) products_of_category = Product.objects.filter(category=category) context = { 'category': category, 'products_of_category': products_of_category, 'cart': cart } return render(request, 'category.html', context)
def product_view(request, product_slug): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.items.count() except KeyError: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) product = Product.objects.get(slug=product_slug) categories = Category.objects.all() context = { "product": product, "categories": categories, "cart": cart, } return render(request, "product.html", context)
def order_create_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины form = OrderForm(request.POST or None) categories = Category.objects.all() context = { # для передачи информации в html ( кол-во товаров в заказе - цифра у корзины и т.д. ) 'form': form, 'cart': cart, 'categories': categories, } return render(request, 'order.html', context)
def make_order_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины form = OrderForm(request.POST or None) categories = Category.objects.all() if form.is_valid(): name = form.cleaned_data['name'] last_name = form.cleaned_data['last_name'] phone = form.cleaned_data['phone'] buying_type = form.cleaned_data['buying_type'] address = form.cleaned_data['address'] comments = form.cleaned_data['comments'] # поля беруться из models.py new_order = Order.objects.create(user=request.user, items=cart, total=cart.cart_total, first_name=name, last_name=last_name, phone=phone, address=address, buying_type=buying_type, comments=comments) del request.session['cart_id'] del request.session['total'] print('ФОРМА ВАЛИДНА') return HttpResponseRedirect(reverse('thank_you')) #return HttpResponseRedirect(reverse('make_order_view')) return render(request, 'order.html', {'categories': categories})
def change_item_qty(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины qty = request.GET.get('qty') item_id = request.GET.get('item_id') # print(qty, item_id) cart.change_qty(qty, item_id) # вызов функции которую добавили в класс cart_item = CartItem.objects.get(id=int(item_id)) # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ # все это перенесено в класс корзины models.py #cart_item.qty = int(qty) #cart_item.item_total = int(qty) * Decimal(cart_item.product.price) #cart_item.save() # расчет общей стоимости заказа #new_cart_total = 0.00 #for item in cart.items.all(): # new_cart_total += Decimal(item.item_total) #cart.cart_total = new_cart_total #cart.save() # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ return JsonResponse({ 'cart_total': cart.items.count(), 'item_total': cart_item.item_total, 'cart_total_price': cart.cart_total, })
def product_view(request, product_slug): """ для работы ссылок на каждый продукт """ try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) # для бейджика на меню корзины categories = Category.objects.all( ) # для отображения в меню dropdowm base.html product = Product.objects.get(slug=product_slug) context = { 'cart': cart, 'product': product, 'categories': categories, } return render(request, 'product.html', context)
def category_view(request, category_slug): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) category = Category.objects.get(slug=category_slug) price_filter_type = request.GET.get('price_filter_type') print(price_filter_type) products_of_category = Book.objects.filter(category=category) categories = Category.objects.all() context = { 'category': category, 'products_of_category': products_of_category, 'cart': cart, 'categories': categories } return render(request, 'category.html', context)
def order_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) if request.method == 'POST': form = OrderForm(request.POST) if form.is_valid(): name = form.cleaned_data['first_name'] last_name = form.cleaned_data['last_name'] phone = form.cleaned_data['phone'] buying_type = form.cleaned_data['buying_type'] address = form.cleaned_data['address'] comments = form.cleaned_data['comments'] new_order = Order() new_order.save() new_order.items.add(cart) new_order.first_name = name new_order.last_name = last_name new_order.phone = phone new_order.address = address new_order.buying_type = buying_type new_order.comments = comments new_order.total = cart.cart_total new_order.save() del request.session['cart_id'] del request.session['total'] return redirect('home') else: form = OrderForm() return render(request, 'ecomapp/order.html', {'form': form})
def make_order_view(request): try: cart_id = request.session["cart_id"] cart = Cart.objects.get(id=cart_id) request.session["total"] = cart.items.count() except KeyError: cart = Cart() cart.save() cart_id = cart.id request.session["cart_id"] = cart_id cart = Cart.objects.get(id=cart_id) categories = Category.objects.all() form = OrderForm(request.POST or None) if form.is_valid(): name = form.cleaned_data["name"] last_name = form.cleaned_data["last_name"] phone = form.cleaned_data["phone"] buying_type = form.cleaned_data["buying_type"] address = form.cleaned_data["address"] comments = form.cleaned_data["comments"] if not comments: comments = "No comments" mew_oder = Order.objects.create( user=request.user, items=cart, total=cart.cart_total, first_name=name, last_name=last_name, phone=phone, address=address, buying_type=buying_type, comments=comments ) del request.session["cart_id"] del request.session["total"] return HttpResponseRedirect(reverse('thank_you')) return render(request, "order.html", {"categories": categories, "form": form})
def add_to_cart_view(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) product_slug = request.GET.get('product_slug') product = Product.objects.get(slug=product_slug) cart.add_to_cart(product.slug) new_cart_total = 0.00 for item in cart.items.all(): new_cart_total += float(item.item_total) cart.cart_total = new_cart_total cart.save() return JsonResponse({ 'cart_total': cart.items.count(),'cart_total_price':cart.cart_total })