예제 #1
0
파일: views.py 프로젝트: j1nn33/study
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
    })
예제 #2
0
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
    })
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
    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
예제 #8
0
파일: views.py 프로젝트: a4urkin/eleph-mrkt
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)
예제 #9
0
파일: views.py 프로젝트: SlGrey/Grey
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)
예제 #10
0
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
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
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)
예제 #15
0
파일: views.py 프로젝트: SlGrey/Grey
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)
예제 #16
0
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
    })
예제 #17
0
파일: views.py 프로젝트: j1nn33/study
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)
예제 #18
0
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)
예제 #19
0
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)
예제 #20
0
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)
예제 #21
0
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)
예제 #22
0
파일: views.py 프로젝트: SlGrey/Grey
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)
예제 #23
0
파일: views.py 프로젝트: j1nn33/study
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)
예제 #24
0
파일: views.py 프로젝트: j1nn33/study
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})
예제 #25
0
파일: views.py 프로젝트: j1nn33/study
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,
    })
예제 #26
0
파일: views.py 프로젝트: j1nn33/study
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)
예제 #27
0
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)
예제 #28
0
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})
예제 #29
0
파일: views.py 프로젝트: SlGrey/Grey
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})
예제 #30
0
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 })