示例#1
0
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)
示例#2
0
    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,
        )
示例#3
0
 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")
示例#4
0
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})
示例#5
0
 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")
示例#6
0
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})
示例#7
0
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})
示例#8
0
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})
示例#9
0
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)
示例#10
0
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)
示例#11
0
    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")
示例#12
0
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})
示例#13
0
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)
示例#14
0
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)
示例#15
0
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})
示例#16
0
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')
示例#17
0
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)
示例#18
0
def add_product(request):

    if request.method == 'POST':

        product_form = ProductForm(request.POST, request.FILES)
        if product_form.is_valid():
            product_form.save()
            return HttpResponseRedirect(reverse('product:add_product'))
        else:
            print(product_form.errors)
    else:
        product_form = ProductForm()
        return render(request, 'product/add_product.html',
                      {'product_form': product_form})
示例#19
0
def productUpdate(request, productId):
    product = get_object_or_404(Product, id=productId)
    template = 'product/productCreateUpdate.html'
    if request.method == 'GET':
        productForm = ProductForm(instance=product)
        return render(request, template, {'productForm': productForm})

    # POST
    productForm = ProductForm(request.POST, instance=product)
    if not productForm.is_valid():
        return render(request, template, {'productForm': productForm})

    productForm.save()
    messages.success(request, '產品已修改')
    return redirect('product:productRead', productId=productId)
示例#20
0
def productpost(request):

    form = ProductForm()

    if request.method == "POST":
        form = ProductForm(request.POST, request.FILES)

        if form.is_valid():
            form.save(commit=True)
            return success(request)

        else:
            print("The Form Is Invalid")

    return render(request, 'product/postproduct.html', {'form': form})
示例#21
0
def updateproduct(request, pk):
    msg = ""
    product = Product.objects.get(id=pk)
    if request.method == "POST":
        form = ProductForm(instance=product, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect("/")
        else:
            msg = form._erorrs
    else:
        form = ProductForm(instance=product)
    return render(request, "product/product_form.html", {
        "form": form,
        "message": msg
    })
示例#22
0
文件: views.py 项目: jjacobson/Sahara
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
    })
示例#23
0
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
        })
示例#24
0
文件: views.py 项目: sebriois/bcg_lab
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
    })
示例#25
0
文件: views.py 项目: sebriois/bcg_lab
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
    })
示例#26
0
    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,

        })
示例#27
0
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)
示例#28
0
def createproduct(request):
    if request.method == "POST":
        form = ProductForm(request.POST, files=request.FILES)
        if form.is_valid():
            form.save()
            msg = "product created successfully"
            return redirect("/")
        else:
            msg = form._errors

    else:
        form = ProductForm()
        msg = ""
    return render(request, "product/product_form.html", {
        "form": form,
        "message": msg
    })
示例#29
0
def product_edit(request, id):
    product = Product.objects.get(id=id)

    if request.method == "POST":
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            form.save()
            return redirect("product", id=product.id)
    
    context = {}
    context["form"] = ProductForm(instance=product)

    return render(
        request,
        "product/form.html",
        context
    )
示例#30
0
def product_create(request):
    context = {}
    if request.method == "POST":
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            context["products"] = Product.objects.filter(avialable=True)
            context["message"] = "Товар был успешно добавлен"
            return render(request, "product/products.html", context)
    
    context["form"] = ProductForm()

    return render(
        request,
        "product/form.html",
        context
    )
示例#31
0
def edit_view(request, *args, **kwargs):
    user = request.user
    pid = kwargs.get('pid')
    pdt = Product.objects.get(pk=pid)
    if pdt.company.owner != user:
        return redirect('seller:products')

    if request.method == 'POST':
        form = ProductForm(data=request.POST,
                           files=request.FILES,
                           instance=pdt)
        if form.is_valid():
            form.save()
            return redirect('seller:products')
    else:
        form = ProductForm(instance=pdt)
    return render(request, 'sellers/add_product.html', {'form': form})
示例#32
0
def product_edit(request , id):
    product = Product.objects.get(id=id)
    if request.user != product.user:
        return redirect("home")
    context = {}

    if request.method == "POST":
        form = ProductForm(request.POST,request.FILES, instance=product)
        if form.is_valid():
            form.save()
            context["product"] = Product.objects.get(id=id)
            context["message"] = "Информация успешно обновлена"
            return redirect("product",id=product.id)
    

    context["form"] = ProductForm(instance=product)

    return render(request,"product/form.html", context)
示例#33
0
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,
    })
示例#34
0
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,
    })