def post(self, request, variant_id): if request.is_ajax(): data = request.POST if 'is_product_edited' in data and data['is_product_edited']: if not self.request.user.has_perm('product.change_product'): return JsonResponse( {'permission_denied': 'Permission denied'}, status=400, safe=False) form = ProductForm(data) if form.is_valid(): cleaned_data = form.cleaned_data Product.objects.update_product(data['id'], cleaned_data) return JsonResponse("success", status=201, safe=False) else: return JsonResponse(form.errors, status=400) elif 'is_variant_edited' in data and data['is_variant_edited']: if not self.request.user.has_perm( 'product.change_productvariant'): return JsonResponse( {'permission_denied': 'Permission denied'}, status=400, safe=False) form = VariantForm(data) if form.is_valid(): cleaned_data = form.cleaned_data ProductVariant.objects.update_variant( variant_id, cleaned_data) return JsonResponse("success", status=201, safe=False) else: return JsonResponse(form.errors, status=400) else: if not self.request.user.has_perm( 'product.change_product' ) and self.request.user.has_perm( 'product.change_productvariant'): return JsonResponse( {'permission_denied': 'Permission denied'}, status=400, safe=False) form = NewStockForm(data) if form.is_valid(): cleaned_data = form.cleaned_data supplier = ProductVariant.objects.add_new_stock( id=variant_id, form_data=cleaned_data) date = datetime.strftime(supplier.date, '%d/%m/%Y %I:%M %p') return JsonResponse( { 'date': date, 'name': cleaned_data['supplier'].name, 'mobile_no': cleaned_data['supplier'].mobile_no, 'total_supplied': supplier.total_supplied, 'per_product_purchase_price': supplier.per_product_purchase_price, 'address': cleaned_data['supplier'].address }, status=201) else: return JsonResponse(form.errors, status=400)
def product_create(request, collection_id): collection = Collection.objects.get(id=collection_id) ChildProductFormSet = modelformset_factory(Product, form=ChildProductForm) if request.method == 'POST': product_form = ProductForm(request.POST) child_formset = ChildProductFormSet(request.POST, prefix='child') if product_form.data.has_key('has_options'): if child_formset.is_valid() and product_form.is_valid(): check = True else: check = False else: if product_form.is_valid(): check = True else: check = False if check: product = product_form.save(commit=False) product.collection = collection product.category = collection.category product.brand = collection.brand product.save() product_form.save_m2m() if product.has_options: for (counter, form) in enumerate(child_formset.forms): child = form.save(commit=False) child.parent = product child.name = product.name child.description = product.description child.brand = product.brand child.category = product.category child.has_options = True child.option_group = product.option_group if not child.price: child.price = product.price child.collection = collection child.slug = product.slug + '-' + child.option.name child.save() for gender in product.gender.all(): child.gender.add(gender) if 'add' in request.POST: return redirect('staff-product-image', product.id) else: return redirect('staff-collection', collection_id=collection_id) else: product_form = ProductForm() child_formset = ChildProductFormSet(prefix='child', queryset=Product.objects.none()) return render(request, 'staff/create-product.html', { 'collection': collection, 'product_form': product_form, 'child_formset': child_formset, })
def post(self, request, *args, **kwargs): """ Create product if form is valid or return status code 400 and form with suggest errors. """ form = ProductForm(request.POST) if form.is_valid(): form.save() return render( request, self.__class__.TABLE_TEMPLATE, { "object_list": Product.objects.select_related("provider").all().order_by( "created_at") }, ) return render( request, self.__class__.FORM_TEMPLATE, {"form": form}, status=400, )
def update_item(request, pk): product = get_object_or_404(Product, pk=pk) user = product.seller if not user == request.user: return redirect('index') if request.method == "POST": form = ProductForm(request.POST, instance=product) if form.is_valid(): updated_product = form.save(commit=False) updated_product.seller = request.user updated_product.save() return redirect('product', pk=updated_product.pk) else: print(request.POST) else: data = { 'name': product.name, 'price': product.price, "description": product.description, "height": product.height, "width": product.width, "depth": product.depth, "category": product.category } form = ProductForm(initial=data) return render(request, 'product/update-item.html', { 'form': form, 'product': product })
def add_new_product(request): context = {} data = {} # if requets is post we need to store data to DB if request.method == 'POST': data = {} form = ProductForm(request.POST, request.FILES) if form.is_valid(): new_product = form.save(commit=False) if 'image_name' in request.POST: file_name = str(request.POST['image_name']) image_path = os.path.join(settings.MEDIA_ROOT, file_name) with open(image_path, 'rb') as file_data: data['file_name'] = image_path new_product.product_image.save(file_name, file_data, save=True) new_product.save() new_product.product_parts.set( form.cleaned_data.get("product_parts")) else: context['form'] = form return render(request, 'product/add_new_product.html', context) form = ProductForm() context = {'form': form, 'page_title': 'Leadstracer-add new product '} return render(request, 'product/add_new_product.html', context)
def post(self, request, *args, **kwargs): category = Category.objects.all().order_by('order') a = AuctionForm(data=request.POST) p = ProductForm(data=request.POST, files=request.FILES) images = dict(request.FILES) if a.is_valid() and p.is_valid(): auction = a.save(commit=False) product = p.save(commit=False) auction.owner = request.user auction.last_bet = auction.start_price auction.next_bet = auction.last_bet + decimal.Decimal(auction.start_price / 100 * auction.increment) auction.save() product.auction = auction product.save() for i in images: ImageModel.objects.create(image=images[i][0], product=product) return redirect('profile') return render(request, self.template_name, context={ "category": category, "auctionform": a, "productform": p, })
def item(request, product_id): product = get_object_or_404(Product, id = product_id) form = ProductForm(instance = product, provider = product.provider) url_args = request.GET.urlencode() if request.method == 'POST': data = request.POST.copy() url_args = data.pop('url_args') form = ProductForm(instance = product, data = data) if form.is_valid(): if form.has_changed(): orig_price = product.price product = form.save() if orig_price != product.price and product.has_expired(): product.expiry = datetime.strptime("31/12/%s" % timezone.now().year, "%d/%m/%Y") product.save() info_msg(request, u"Produit modifié avec succès.") return redirect(reverse('product:list') + '?' + url_args[0]) product_type = ContentType.objects.get_for_model(Product) return render(request, 'product/item.html', { 'product': product, 'product_type': product_type.id, 'form': form, 'url_args': url_args })
def new(request): provider = None form = ProductForm() if request.method == 'GET': provider_id = request.GET.get('provider_id', None) if provider_id: provider = get_object_or_404(Provider, id = provider_id) form = ProductForm(provider = provider) elif request.user.has_perm("order.custom_view_local_provider"): provider = get_object_or_404(Provider, name = 'MAGASIN', is_local = True) form = ProductForm(provider = provider) elif request.method == 'POST': if 'provider' in request.POST and request.POST['provider']: provider = get_object_or_404(Provider, id = request.POST['provider']) form = ProductForm(provider = provider, data = request.POST) else: provider = None form = ProductForm(data = request.POST) if form.is_valid(): p = form.save() if p.provider.reseller: p.origin = p.provider.name p.provider = p.provider.reseller p.save() info_msg(request, u"Produit ajouté avec succès.") return redirect(reverse('product:list') + "?reference=%s&connector=OR" % p.reference) return render(request, 'product/new.html', { 'provider': provider, 'form': form })
def post(self, request): form = ProductForm(data=request.POST, files=request.FILES) if form.is_valid(): form.save() return redirect('/manager/') else: return HttpResponse("Sai cu phap")
def product_add(request): form = ProductForm(request.POST or None) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("product:product_list")) context = {"form": form} return render(request, "form.html", context)
def item(request, product_id): product = get_object_or_404(Product, id=product_id) if request.method == 'GET': form = ProductForm(instance=product, provider=product.provider) url_args = request.GET.urlencode() elif request.method == 'POST': data = request.POST.copy() url_args = data.pop('url_args') form = ProductForm(instance=product, data=data) if form.is_valid(): if form.has_changed(): orig_price = product.price product = form.save() if orig_price != product.price and product.has_expired(): product.expiry = datetime("31/12/%s" % datetime.now().year, "%d/%m/%Y") product.save() info_msg(request, u"Produit modifié avec succès.") return redirect(reverse('product_index') + '?' + url_args[0]) product_type = ContentType.objects.get_for_model(Product) return render( request, 'product/item.html', { 'product': product, 'product_type': product_type.id, 'form': form, 'url_args': url_args })
def update(request, id): product = Product.objects.get(id=id) form = ProductForm(request.POST, instance=product) if form.is_valid(): form.save() return redirect("/show") return render(request, 'edit.html', {'product': product})
def createproduct(request): product_form = ProductForm() if request.method == "POST": form = ProductForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('product:productlist')) return render(request, 'product/createview.html', {"form":product_form})
def createProduct(request): form = ProductForm(data=request.POST or None, files=request.FILES or None) if request.method == "POST": if form.is_valid(): form.save() return HttpResponseRedirect('/list_edit/') return render(request, 'product_create.html', {'form': form})
def post(self, request): form = ProductForm(data=request.POST, files=request.FILES) form.price = request.POST["price"] if form.is_valid(): form.save() return redirect('manager:product_control') else: return HttpResponse("Sai cu phap")
def save_product(request): form = ProductForm(request.POST or None, request.FILES or None) if form.is_valid(): product = form.save(commit=False) product.user = request.user product.save() return HttpResponseRedirect(reverse("product:product_list")) context = {"form": form} return render(request, "form.html", context)
def create(request): form = ProductForm(request.POST or None) if form.is_valid(): post = form.save(commit=False) post.slug = slugify(post.name) post.save() form = ProductForm() return render(request, "form.html", {'form': form, 'name': "Produto"})
def edit_product(request, id): product = get_object_or_404(Product, id=id) form = ProductForm(request.POST or None, request.FILES or None, instance=product) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("product:product_list")) context = {"form": form} return render(request, "form.html", context)
def add(request): if request.method == 'POST': form = ProductForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/') else: form = ProductForm() return render(request, 'product/form.html', {'form': form})
def post(self, request, action_id): if action_id == 1: form = ProductForm(data=request.POST, files=request.FILES) if action_id == 2: form = CategoryForm(request.POST) if form.is_valid(): form.save() return redirect('http://127.0.0.1:8000/manage/') else: return HttpResponse("Sai cu phap")
def add_product(request): form = ProductForm(data=request.POST or None, files=request.FILES or None) if request.method == "POST": if form.is_valid(): product = form.save() messages.success( request, f"{product.title} is added successfully.") return redirect(product.get_absolute_url()) context = {'form': form} return render(request, 'dashboard/add_product.html', context)
def productedit(request, pk): product = Product.objects.get(id=pk) form = ProductForm(instance=product) if request.method == 'POST': form = ProductForm(request.POST, instance=product) if form.is_valid(): form.save() return redirect('product') context = {'form': form, 'product': product} return render(request, 'edit.html', context)
def add_view(request, *args, **kwargs): if request.method == 'POST': form = ProductForm(data=request.POST, files=request.FILES) if form.is_valid(): form = form.save(commit=False) form.company = request.user.seller_set.all().first() form.save() return redirect('seller:products') else: form = ProductForm() return render(request, 'sellers/add_product.html', {'form': form})
def post(self, *args, **kwargs): context = {} form = ProductForm(self.request.POST, self.request.FILES) if form.is_valid(): new_product = form.save() new_product.user = self.request.user new_product.save() context["products"] = Product.objects.filter(availability=True, delete=False) context["message"] = "Товар добавлен" return render(self.request, "product/products.html", context)
def product_creation(request): if request != 'POST': form = ProductForm() else: # post has been filled, ready for processing form = ProductForm(request.POST, request.FILES) if form.is_valid(): form.save() context = {"form": form} return render(request, 'product/product_creation.html', context)
def product(request): if request.method == "POST": form = ProductForm(request.POST) if form.is_valid(): try: form.save() return redirect('/show') except: pass else: form = ProductForm() return render(request,'add_product.html',{'form':form})
def add(request): if request.method == 'POST': form = ProductForm(request.POST) if form.is_valid(): form.save() return render(request, 'product/goods-list.html', {'products': Product.objects.all()}) else: pass else: form = ProductForm() content = {'form': form} return render(request, 'product/good-create.html', content)
def post(self, request): """Save product and redirect to product list.""" form = ProductForm(request.POST) if form.is_valid(): new_product = form.save() return redirect('product:product_images_add', product_id=new_product.id) else: return render(request, 'product/add-product.html', { 'form': form, 'func': 'Add' })
def test_invalid_form(self): image = InMemoryUploadedFile( StringIO(TEST_IMAGE), field_name='image', name='1.JPG', content_type='image/jpg', size=len(TEST_IMAGE), charset='utf-8', ) data ={'name':'','description':'descripcion','price':'100.00'} form = ProductForm(data=data, files={'image':image}) self.assertFalse(form.is_valid())
def product(request): if request.method == "POST": form = ProductForm(request.POST) if form.is_valid(): try: form.save() return redirect('/show') except: pass form = ProductForm() csrfContext = RequestContext(request) return render(request, 'index_product.html', {'form': form}, csrfContext)
def productCreate(request): template = 'product/productCreateUpdate.html' if request.method == 'GET': return render(request, template, {'productForm': ProductForm()}) # POST productForm = ProductForm(request.POST) if not productForm.is_valid(): return render(request, template, {'productForm': productForm}) productForm.save() messages.success(request, '產品已新增') return redirect('product:product')
def add_to_cart(request, product_id): products = Product.objects.all() product = get_object_or_404(products, pk=product_id) response = views.product(request, product.get_slug, product_id) cart = get_or_create_cart(request) form = ProductForm(request.POST) if form.is_valid(): quantity = form.cleaned_data['quantity'] if not form.cleaned_data['quantity']: quantity = 1 save_to_cart(cart, product, quantity) if not request.user.is_authenticated: set_cart_cookie(cart, response) return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
def edit(request, id): product = Product.objects.get(id=id) if request.POST: form = ProductForm(request.POST, instance=product) if form.is_valid(): post = form.save(commit=False) post.slug = slugify(post.name) post.save() return redirect(product.get_absolute_url()) else: form = ProductForm(instance=product) request.session['product_id'] = id return render(request, "form.html", {'form': form, 'name': "Produto"})
def sell_item(request): if request.method == "POST": form = ProductForm(request.POST) if form.is_valid(): product = form.save(commit=False) product.seller = request.user product.save() return redirect('product', pk=product.pk) else: print(form.errors) print(request.POST) else: form = ProductForm() return render(request, 'product/list-item.html', {'form': form})
def add_product(request): user = request.user merchant = Merchant.objects.get(user=user) if request.method == 'POST': form = ProductForm(request.POST, request.FILES) if form.is_valid(): product = Product(merchant=merchant,name=form.cleaned_data['name'], category=form.cleaned_data['category'], selling_price=form.cleaned_data['selling_price'], original_price=form.cleaned_data['original_price'], quantity=form.cleaned_data['quantity'], photo = request.FILES['photo']) product.save() return HttpResponseRedirect('/merchant') else: pass else: form = ProductForm() variables = RequestContext(request, {'form': form}) return render_to_response('product/add_product.html', variables)
def product_edit(request, collection_id, product_id): from django.http import HttpResponse product = get_object_or_404(Product, id=product_id) collection = Collection.objects.get(id=collection_id) children = Product.objects.filter(parent=product) if children: ChildProductFormSet = modelformset_factory(Product, form=ChildProductForm, extra=0) else: ChildProductFormSet = modelformset_factory(Product, form=ChildProductForm) product_form = ProductForm(request.POST or None, instance=product) if request.method == 'POST': child_formset = ChildProductFormSet(request.POST, prefix='child') if product_form.data.has_key('has_options'): if child_formset.is_valid() and product_form.is_valid(): check = True else: check = False else: if product_form.is_valid(): check = True else: check = False if check: product = product_form.save() if product.has_options: for (counter, form) in enumerate(child_formset.forms): child = form.save(commit=False) child.parent = product child.name = product.name child.description = product.description child.brand = product.brand child.category = product.category child.has_options = True child.option_group = product.option_group if not child.price: child.price = product.price child.collection = collection child.slug = product.slug + '-' + child.option.name child.save() child.gender.clear() for gender in product.gender.all(): child.gender.add(gender) children = children.exclude(id=child.id) children.delete() if 'add' in request.POST: return redirect('staff-product-image', product.id) else: return redirect('staff-collection', collection_id) child_formset = ChildProductFormSet(prefix='child', queryset=children) return render(request, 'staff/edit-product.html', { 'collection': collection, 'product_form': product_form, 'child_formset': child_formset, })