Exemplo n.º 1
0
def sell(request):

    if request.method == "POST" and request.FILES['myfile']:
        category = request.POST.get('catogery', '')
        name = request.POST.get('name', '')
        email = request.POST.get('email', '')
        phone = request.POST.get('phone', '')
        desc_product = request.POST.get('desc_product', '')
        ad_titel = request.POST.get('ad_titel', '')
        price = request.POST.get('price', '')
        wa_phone = request.POST.get('wa_phone', '')
        myfile = request.FILES['myfile']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        url = fs.url(filename)
        if len(name) < 2 or len(email) < 3 or len(phone) < 10 or len(
                desc_product) < 4:
            messages.error(request, "Please fill the form correctly")
        else:
            product = Product(name=name,
                              email=email,
                              phone=phone,
                              desc_product=desc_product,
                              ad_titel=ad_titel,
                              category=category,
                              price=price,
                              wa_phone=wa_phone,
                              image=url)
            product.save()
            messages.success(
                request,
                "Your add has been posted successfully, now just sit back and relax, wait for the buyers to contact you"
            )
    return render(request, "home/sell.html")
Exemplo n.º 2
0
def product_update(request):
    # 상품코드
    id = request.POST['product_id']
    # 상품의 정보(수정전)
    vo_src = Product.objects.get(product_id=id)
    # 상품이미지 파일 경로
    p_url = vo_src.picture_url
    # 새로운 첨부파일이 있을 경우
    if "file1" in request.FILES:
        file = request.FILES["file1"]
        p_url = file._name
        
        fp = open("%s%s" % (UPLOAD_DIR, p_url), "wb")
        for chunk in file.chunks():
            fp.write(chunk)
        fp.close()

    # 수정 후의 상품 정보
    vo_new = Product(product_id = id,
                    product_name = request.POST["product_name"],
                    description = request.POST["description"],
                    price = request.POST["price"],
                    picture_url = p_url)

    # 상품정보가 수정됨
    vo_new.save()

    # 상품 목록으로 이동
    return redirect("/product_list")
Exemplo n.º 3
0
    def handle(self, *args, **options):
        products = settings.BASE_DIR.joinpath('products.json')

        with open(products, encoding='utf-8') as f:
            data = json.load(f)

            for item in data:
                category, created = Category.objects.get_or_create(
                    name=item['category'][0])

                if created:
                    category.save()

                try:
                    product = Product.objects.get(category=category,
                                                  name=item['name'][0])
                except Product.DoesNotExist:
                    product = Product(category=category, name=item['name'][0])

                product.price = float(item['price'][0][1:])
                product.description = item['description'][0]
                product.save()

                photo, created = Photo.objects.get_or_create(
                    product=product, url=item['photo'][1])

                if created:
                    photo.save()

                size, created = Size.objects.get_or_create(product=product)

                if created:
                    size.size = self.random_size()
                    size.save()
Exemplo n.º 4
0
    def create_new_product(cls, form_data, files):
        try:
            with transaction.atomic():
                product_class = None
                product_brand = None
                catalog = None
                try:
                    product_class = ProductClass.objects.get(
                        pk=int(form_data['product_class']))
                except ProductClass.DoesNotExist as e:
                    raise ProductException('Не удалось найти такой вид товара')

                try:
                    catalog = Catalog.objects.get(pk=int(form_data['catalog']))
                except Catalog.DoesNotExist as e:
                    raise ProductException('Не удалось найти такой каталог')
                try:
                    product_brand = ProductBrand.objects.get(
                        pk=int(form_data['product_brand']))
                except ProductBrand.DoesNotExist as e:
                    raise ProductException('Не удалось найти такой бренд')
                pr = form_data['price'].replace(",", ".")
                pr = float(pr)

                new_product = Product(title=form_data['title'],
                                      product_class=product_class,
                                      description=form_data['description'],
                                      brand=product_brand,
                                      code=form_data['code'],
                                      price=pr,
                                      is_delete=False,
                                      is_featured=True)
                try:
                    new_product.clean_fields()
                    new_product.save()
                except ValidationError as e:
                    tmp = e
                    raise ProductException(message='validation errors',
                                           errors=e.message_dict)
                try:
                    ProductToCatalog.objects.create(product=new_product,
                                                    catalog=catalog)
                    if catalog.parent:
                        ProductToCatalog.objects.create(product=new_product,
                                                        catalog=catalog.parent)
                except IntegrityError as e:
                    raise ProductException(
                        'Не удалось добавить товар к каталогу')
                try:
                    for file in files.getlist('images'):
                        ProductImage.objects.create(product=new_product,
                                                    link=file,
                                                    is_delete=False)
                except IntegrityError as e:
                    raise ProductException('Не удалось загрузить картинки')
                return new_product
        except ProductException as e:
            raise e
        except IntegrityError as e:
            raise ProductException('Не удалось сохранить товар в БД')
def populate_products(categories, sizes):

    price = 1500
    material = 'Хлопок 100%'
    models_height = 165
    description = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \
                  'Etiam sodales justo non ipsum viverra vulputate. ' \
                  'Mauris commodo sit amet sapien eu congue. ' \
                  'Donec efficitur nunc vitae sem condimentum, non maximus tellus dictum. ' \
                  'Sed turpis ipsum, consectetur eget augue quis, fermentum pulvinar lectus.'

    for i in range(15):
        item_name = 'Название товара {}'.format(i)
        category = ProductCategory.objects.get(name=random.choice(categories))
        product_sizes = random.sample(sizes, random.choice([2, 3, 4]))

        product = Product(name=item_name,
                          category=category,
                          price=price,
                          material=material,
                          models_height=models_height,
                          description=description)
        product.save()
        for i in product_sizes:
            size = ProductSize.objects.get(name=i)
            product.size.add(size)
        print('Создание товара {}'.format(item_name))
Exemplo n.º 6
0
def product_insert(request):
    # 첨부파일이 있는 경우
    if "file1" in request.FILES:
        #<input type="file" name="file1">
        file = request.FILES["file1"]
        file_name = file._name # 첨부파일의 이름
        # 파일 오픈(wb: write binary)
        fp = open("%s%s" % (UPLOAD_DIR, file_name), "wb")
        # 파일 조각을 조금씩 읽어서 저장
        for chunk in file.chunks():
            fp.write(chunk)
        
        # 파일 닫기
        fp.close()

    # 첨부파일이 없는 경우
    else:
        file_name = "-"

    vo = Product(product_name = request.POST["product_name"],
                description = request.POST["description"],
                price = request.POST["price"],
                picture_url = file_name)

    # 레코드가 저장됨
    vo.save()

    # 상품 목록으로 이동
    return redirect("/product_list")
Exemplo n.º 7
0
    def update(self, request, *args, **kwargs):
        """
        제품 데이터 수정
        """
        product_id = request.data['id']
        #json데이터를 객체로 역직렬화
        product_data = json.loads(request.data['product'])
        file_list = request.FILES.getlist('photos')

        #업로드된 이미지 파일 저장
        photo_urls = product_data["photo_urls"]

        photo_urls = photo_urls + \
            self.__get_product_images(product_id, file_list)

        #원래 등록되어 있었던 이미지 목록 조회
        original_images = \
            ProductImage.objects.filter(product_id=product_id)

        #삭제된 이미지 삭제 처리
        for oi in original_images:
            if oi.photo_url not in photo_urls:
                oi.delete()

        #새로 추가된 이미지 추가
        self.__add_product_images(product_id, photo_urls)

        category_ids = product_data["category_ids"]

        #원래 등록되어 있었던 분류 목록 조회
        original_categories =\
            ProductCategory.objects.filter(product_id=product_id)

        #삭제된 분류 삭제
        for oc in original_categories:
            if oc.category_id not in category_ids:
                oc.delete()

        #새로 추가된 분류 추가
        self.__add_product_categories(product_id, category_ids)

        #제품 데이터 검증 및 모델 객체 생성
        serializer = ProductSerializer(data=product_data)
        if serializer.is_valid():
            validated_data = serializer.validated_data
            #모델에 포함되지 않은 속성은 삭제
            del validated_data["category_ids"]
            #데이터에서 모델 객체 생성
            product = Product(**serializer.validated_data)
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        #생성일은 변경하지 않도록 처리
        del product.createdDate
        product.modifiedDate = datetime.now()
        product.save()

        return Response({"id": product.id})
Exemplo n.º 8
0
    def handle(self, *args, **options):
        base_path: pathlib.Path = options['redbubble_data_root']

        for design_dir in [x for x in base_path.iterdir() if x.is_dir()]:
            design_name = design_dir.name
            design, _ = Design.objects.get_or_create(name=design_name)

            self.stdout.write(f'Importing {design}')

            for product_dir in [x for x in design_dir.iterdir() if x.is_dir()]:
                product_name = product_dir.name.replace(design_name, "",
                                                        1).strip()

                product_type, _ = ProductType.objects.get_or_create(
                    name=product_name)
                self.stdout.write(f'Importing {design}/{product_type}')

                download_info_path = product_dir / "download.json"
                try:
                    with open(download_info_path, "r") as f:
                        download_info = json.load(f)
                except FileNotFoundError:
                    self.stdout.write(
                        self.style.WARNING(
                            f'No data found for {download_info_path}'))

                features_html = download_info["features_html"]
                varients = download_info["varients"]

                for varient in varients:
                    product = Product(
                        name=product_dir.name,
                        html_description=features_html,
                        external_url=varient["url"],
                        design=design,
                        product_type=product_type,
                        sizes_names=varient["sizes_names"],
                        price=varient["price"],
                        print_location=varient["print_location_text"] or "",
                        color_product_name=varient["color_product_name"] or "")

                    product.save()
                    for image_data in varient["images"]:
                        image_rel_path = image_data["link"]
                        image_path = base_path / image_rel_path.replace(
                            "redbubble/", "", 1)

                        with open(image_path, "rb") as image_file:
                            image = ProductPicture(
                                product=product,
                                is_main_image=image_data["main"],
                                photo=File(image_file))

                            image.save()

            self.stdout.write(self.style.SUCCESS(f'Imported {design_name}'))
Exemplo n.º 9
0
def add_random_product():
    category = Category.objects.first()
    item = Product()
    item.category = category
    item.name = my_random_string(category.slug)
    item.slug = item.name + '_slug'
    item.price = 1
    item.stock = 2
    item.save()
    return item
Exemplo n.º 10
0
 def handle(self, *args, **options):
     try:
         p = Product()
         p.name = u'\"Норка\"'
         p.price = 100500.0
         p.img_url = '/static/bfriday/1.png'
         p.SKU = '-1'
         p.save()
     except Exception, e:
         pass
Exemplo n.º 11
0
    def start_requests(self):
        for category in Category.objects.all():
            if category.url:
                parse_urls = []
                driver = webdriver.PhantomJS(
                    executable_path=settings.PHANTOMJS)
                driver.set_window_size(1320, 950)
                driver.get(category.url)
                time.sleep(5)
                try:
                    pagination = driver.find_elements_by_xpath(
                        '//ul[@class="pagination"]/li')
                except:
                    pagination = ""
                if len(pagination) > 2:
                    last = pagination[-2].text
                else:
                    last = ""
                if last:
                    page_list = range(int(last) + 1)
                    for i in page_list:
                        if i == 0:
                            continue
                        url = category.url + "page-" + str(i) + "/"
                        parse_urls.append(url)

                parse_urls.append(category.url)
                driver.quit()
                for url in parse_urls:
                    driver = webdriver.PhantomJS(
                        executable_path=settings.PHANTOMJS)
                    driver.set_window_size(1320, 950)
                    driver.get(url)
                    time.sleep(5)
                    for p in driver.find_elements_by_xpath(
                            '//div[@class="good-i-t"]/a'):
                        name = p.text
                        url = p.get_attribute('href')
                        slug = slugify(name)
                        prod = Product.objects.filter(category=category,
                                                      slug=slug,
                                                      name=name).first()
                        print("***" + name)
                        print("***" + url)
                        print("***" + slug)

                        if not prod:
                            prod = Product(category=category,
                                           slug=slug,
                                           name=name,
                                           url=url)
                            prod.save()
                        else:
                            prod.url = url
                            prod.save()
Exemplo n.º 12
0
 def setup_shopdata(self):
     product = Product(name='Test', slug='test')
     product.save()
     tax = TaxClass(name='VAT', rate=10.00)
     tax.save()
     price = ProductPrice(product=product, currency='USD', 
                          _unit_price=100.00, tax_included=1, tax_class=tax)
     price.save()
     order = Order.objects.create(user_id=1, currency='USD')
     order.modify_item(product, relative=1)
     self.order = order
Exemplo n.º 13
0
def init_products():
    categories = Category.objects.all()
    for category in categories:
        for number in range(4):
            item = Product()
            item.category = category
            item.name = my_random_string(category.slug)
            item.slug = item.name + '_slug'
            item.price = 1
            item.stock = 2
            item.save()
Exemplo n.º 14
0
 def setUpClass(cls):
     super(BaseModelTestCase, cls).setUpClass()
     coupon = Coupon(code='sale',
                     valid_from=datetime.now(),
                     discount=10,
                     active=True,
                     valid_to=datetime.now() + timedelta(days=10))
     coupon.save()
     cls.order_sale = Order(first_name='Имя',
                            last_name='Фамилия',
                            email='*****@*****.**',
                            address='Улица, дом 1',
                            postal_code='123',
                            city='Город',
                            discount=10,
                            coupon=coupon)
     cls.order_sale.save()
     cls.order = Order(first_name='Имя',
                       last_name='Фамилия',
                       email='*****@*****.**',
                       address='Улица, дом 1',
                       postal_code='123',
                       city='Город')
     cls.order.save()
     category = Category(name='category_name', slug='category_slug')
     category.save()
     product_1 = Product(category=category,
                         name='product_1',
                         slug='slug_1',
                         price=5,
                         stock=1)
     product_2 = Product(category=category,
                         name='product_2',
                         slug='slug_2',
                         price=5,
                         stock=1)
     product_1.save()
     product_2.save()
     cls.order_item_1 = OrderItem(
         order=cls.order,
         product=product_1,
         price=product_1.price,
     )
     cls.order_item_2 = OrderItem(order=cls.order,
                                  product=product_2,
                                  price=product_2.price,
                                  quantity=5)
     cls.order_item_1.save()
     cls.order_item_2.save()
     cls.order_sale_item = OrderItem(order=cls.order_sale,
                                     product=product_2,
                                     price=product_2.price,
                                     quantity=5)
     cls.order_sale_item.save()
Exemplo n.º 15
0
def products_generate():

        for i in range(1,6):
            c = Category.objects.get(code=i)
            Product.objects.all().filter(category=c).delete()

            for r in range(1,31):
                price = random.randint(10, 100)
                desc = randstring(300)
                p = Product(code= i + r,name='Товар ' + str(r)+str(i),
                            category=c,price=price,description=desc)
                p.save()
Exemplo n.º 16
0
class CheckoutCartToOrderTestCase(TestCase):
    def setUp(self):
        self.user = User.objects.create(username="******",
                                        email="*****@*****.**",
                                        first_name="Test",
                                        last_name="Toto")
        self.request = Mock()
        setattr(self.request, 'user', self.user)
        setattr(self.request, 'session', {})
        setattr(self.request, 'method', 'GET')
        self.product = Product(name='pizza',
                               slug='pizza',
                               unit_price='1.45',
                               active=True)
        self.product.save()
        self.cart = Cart()
        self.cart.user = self.user
        self.cart.save()

    def test_order_created(self):
        view = CheckoutSelectionView(request=self.request)
        res = view.create_order_object_from_cart()
        self.assertEqual(res.order_total, Decimal('0'))

    def test_orders_are_created_and_cleaned_up(self):
        view = CheckoutSelectionView(request=self.request)
        # create a new order with pk 1
        old_order = view.create_order_object_from_cart()
        # create order with pk 2 so sqlite doesn't reuse pk 1
        Order.objects.create()
        # then create a different new order, from a different cart with pk 3
        # order pk 1 should be deleted here
        self.cart.add_product(self.product)
        new_order = view.create_order_object_from_cart()
        self.assertFalse(Order.objects.filter(
            pk=old_order.pk).exists())  # check it was deleted
        self.assertNotEqual(old_order.order_total, new_order.order_total)

    def test_processing_signal(self):
        view = CheckoutSelectionView(request=self.request)

        order_from_signal = []

        def receiver(sender, order=None, **kwargs):
            order_from_signal.append(order)

        processing.connect(receiver)
        res = view.create_order_object_from_cart()

        self.assertIs(res, order_from_signal[0])
Exemplo n.º 17
0
def add(request):
    if request.method == 'POST':
        product_number = request.POST['product_number']
        product_name = request.POST['product_name']
        catagory = request.POST['catagory']
        product_discription = request.POST['product_discription']
        img = request.FILES.get('img','a.jpeg')
        price=request.POST['price']
        p=Product(product_number=product_number,product_name=product_name,catagory=catagory,product_discription=product_discription,price=price,img=img)
        p.save()
        messages="Successfully Product Added "
        return render(request,'addProduct.html',{'m':messages})
    else:
        messages="Some Error :Product Not Added"
        return render(request,'addProduct.html',{'m':messages})
Exemplo n.º 18
0
Arquivo: views.py Projeto: wooshe/Shop
def main_product(author, category, name, description, material, model, color):
    pr = Product()
    pr.author = author
    pr.category = category
    pr.name = name
    pr.description = description
    pr.material = material
    pr.model = model
    pr.color = color
    pr.price = random.uniform(100, 2000)
    pr.like = random.randint(0, 1000)
    pr.rating = random.uniform(1, 5)
    pr.rating_count = 500
    pr.rating_sum = int(pr.rating * 500)
    pr.save()
Exemplo n.º 19
0
    def handle(self, *args, **options):
        print('shop is working!')
        Category.objects.all().delete()
        for i in all_ctgr:
            c = Category()
            c.name = i
            c.save()
            print(c)

            Product.objects.all().delete()
            for i in phones:
                p = Product()
                p.name = i
                p.category = c
                p.save()
                '''Product.objects.all().delete()
Exemplo n.º 20
0
class CommentAddTest(TestCase):
    def setUp(self):
        self.u = User.objects.create_user(username='******',
                                          email='*****@*****.**',
                                          password='******')
        self.p = Product(name="p", description="p", price=1, stock=1)
        self.p.save()
        self.client.login(username="******", password="******")

    def test_add_comment_view(self):
        self.client.post(reverse("comments:add_comment"), {
            "content": "test",
            "stars": 3,
            "pk": 1
        })
        self.assertEqual(self.u.comments.count(), 1)
        self.assertEqual(self.p.comments.count(), 1)
Exemplo n.º 21
0
    def handle(self, *args, **options):
        categories = load_from_json('categories')

        Category.objects.all().delete()
        for category in categories:
            new_category = Category(**category)
            new_category.save()

        products = load_from_json('products')

        Product.objects.all().delete()
        for product in products:
            category_name = product["category"]
            _category = Category.objects.get(name=category_name)
            product['category'] = _category
            new_product = Product(**product)
            new_product.save()
Exemplo n.º 22
0
class CheckoutCartToOrderTestCase(TestCase):

    def setUp(self):
        self.user = User.objects.create(username="******",
                                        email="*****@*****.**",
                                        first_name="Test",
                                        last_name="Toto")
        self.request = Mock()
        setattr(self.request, 'user', self.user)
        setattr(self.request, 'session', {})
        setattr(self.request, 'method', 'GET')
        self.product = Product(name='pizza', slug='pizza', unit_price='1.45')
        self.product.save()
        self.cart = Cart()
        self.cart.user = self.user
        self.cart.save()

    def test_order_created(self):
        view = CheckoutSelectionView(request=self.request)
        res = view.create_order_object_from_cart()
        self.assertEqual(res.order_total, Decimal('0'))

    def test_orders_are_created_and_cleaned_up(self):
        view = CheckoutSelectionView(request=self.request)
        # create a new order with pk 1
        old_order = view.create_order_object_from_cart()
        # create order with pk 2 so sqlite doesn't reuse pk 1
        Order.objects.create()
        # then create a different new order, from a different cart with pk 3
        # order pk 1 should be deleted here
        self.cart.add_product(self.product)
        new_order = view.create_order_object_from_cart()
        self.assertFalse(Order.objects.filter(pk=old_order.pk).exists()) # check it was deleted
        self.assertNotEqual(old_order.order_total, new_order.order_total)

    def test_processing_signal(self):
        view = CheckoutSelectionView(request=self.request)

        order_from_signal = []
        def receiver(sender, order=None, **kwargs):
            order_from_signal.append(order)

        processing.connect(receiver)
        res = view.create_order_object_from_cart()

        self.assertIs(res, order_from_signal[0])
Exemplo n.º 23
0
def product_insert(request):
    # 첨부 파일이 존재 한다면 ...
    if "file1" in request.FILES:
        # 파일 이름
        file = request.FILES["file1"]
        file_name = file.name
        fp = open("%s%s"%(UPLOAD_DIR, file_name), "wb")
        for chunk in file.chunks():
            fp.write(chunk)
        fp.close()
    else:
        file_name="-"
    dto = Product(product_name=request.POST["product_name"],
                  description=request.POST["description"],
                  price=request.POST["price"],
                  picture_url=file_name)
    dto.save()
    return redirect("/shop/shoplist")
    def create(self, request, *args, **kwargs):
        """
        제품 데이터 추가
        """
        #json데이터를 객체로 역직렬화
        product_data = json.loads(request.data['product'])        
        file_list = request.FILES.getlist('photos')

        #제품 데이터 검증 및 모델 객체 생성
        serializer = ProductSerializer(data=product_data)
        if serializer.is_valid():
            validated_data = serializer.validated_data
            #모델에 포함되지 않은 속성은 삭제
            del validated_data["category_ids"]
            #데이터에서 모델 객체 생성
            product = Product(**serializer.validated_data)
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)
        
        #생성일은, 수정일은 자동 입력되도록 처리
        del product.created_date
        del product.modified_date
        product.save()

        #업로드된 이미지 파일 저장
        photo_urls = product_data["photo_urls"]

        photo_urls = photo_urls + \
            self.__get_product_images(product.id, file_list)
        
        #새로 추가된 이미지 추가
        self.__add_product_images(product.id, photo_urls)        

        category_ids = product_data["category_ids"]

        #새로 추가된 분류 추가
        self.__add_product_categories(
            product.id, 
            category_ids)
        
        return Response({
            "id": product.id
        })
Exemplo n.º 25
0
Arquivo: tests.py Projeto: Dxtag/cosa
class PlaceOrderTest(TestCase):
    def setUp(self):
        self.u = User.objects.create_user(username='******',
                                          email='*****@*****.**',
                                          password='******')
        self.u.profile.inpost_code = "dup123"
        self.u.profile.save()
        self.p = Product(name="p", description="p", price=1, stock=1)
        self.p.save()
        b = Basket(customer=self.u)
        b.save()
        BasketProduct(product=self.p, basket=b, quantity=1).save()
        self.client.login(username="******", password="******")

    def test_place_order(self):
        self.client.get(reverse("orders:place_order"), follow=True)
        self.assertEqual(Order.objects.count(), 1)
        self.assertEqual(Order.objects.get(pk=1).products.all().count(), 1)
        self.assertEqual(BasketProduct.objects.count(), 0)
        self.assertEqual(self.p.purchases.objects.count(), 1)
Exemplo n.º 26
0
      def handle(self, *args, **options):
            print('shop is working!')
            Category.objects.all().delete()
            for i in all_ctgr:
                  c = Category()
                  c.name = i
                  c.save()
                  print(c)

                  Product.objects.all().delete()
                  for i in phones:
                        p = Product()
                        p.name = i
                        p.category = c
                        p.save()
                        p.image.save("test.png",
                        File(open('%s/%s' % (MEDIA_ROOT, "icon128.png"), "rb"))
                        )

                        '''Product.objects.all().delete()
Exemplo n.º 27
0
 def handle(self, *args, **options):
     d = Product.objects.all()
     d.delete()
     for c in ShopProduct.objects.using('old').all():
         category = Category.objects.filter(pk=c.category_id).first()
         prod = Product.objects.filter(category=category,
                                       slug=c.slug).first()
         if not prod:
             prod = Product(pk=c.pk)
         prod.name = c.name
         prod.category = category
         prod.slug = c.slug
         prod.title = c.title
         prod.description = c.metadesc
         prod.keywords = c.metakey
         prod.price = c.price
         prod.image = c.image
         prod.description = c.description
         prod.full_text = c.full_text
         prod.save()
         print(prod.id)
Exemplo n.º 28
0
def checkproductdata(request):
    name = request.POST.get("name")
    price = request.POST.get("price")
    category = request.POST.get("category")
    stock = request.POST.get("stock")
    image = request.FILES['image']
    color = request.POST.get('color')
    size = request.POST.get('size')
    desc = request.POST.get('description')
    discount = request.POST.get('discount')

    s = Product(name=name,
                category=category,
                price=price,
                stock=stock,
                size=size,
                image=image,
                color=color,
                description=desc,
                discount=discount)
    s.save()
    return HttpResponseRedirect('/admin_role/')
Exemplo n.º 29
0
def create(request, manage_type):
    typee = ProductType.objects.all()
    message = ''
    if request.method == 'POST' and manage_type == 'type':
        typee = ProductType()
        typee.name = request.POST.get('input_name')
        typee.description = request.POST.get('input_desc')
        typee.save()
        message = 'Create %s product type sucessful' % typee.name

    elif request.method == 'POST' and manage_type == 'product':
        products = Product()
        products.name = request.POST.get('input_name')
        products.description = request.POST.get('input_desc')
        products.price = request.POST.get('input_price')
        products.ProductType_id = request.POST.get('input_type')
        products.save()
        message = 'Create product : %s sucessful' % products.name
    context = {'manage_type': manage_type, 'type': typee, 'message': message}
    return render(request,
                  template_name='management/create.html',
                  context=context)
Exemplo n.º 30
0
def product_insert(request):
    # 첨부파일이 있는 경우
    if "file1" in request.FILES:  # 업로드 된 파일을 복사처리
        file = request.FILES["file1"]
        file_name = file._name  # 첨부파일 이름
        # 파일 오픈 (wb: write binary)
        fp = open("%s%s" % (UPLOAD_DIR, file_name), "wb")
        # 파일을 1 파이트씩 조금씩 읽어서 저장
        for chunk in file.chunks():
            fp.write(chunk)
        #파일 닫기
        fp.close()
    else:
        file_name = "-"
        #Database 처리
    dto = Product(product_name=request.POST["product_name"],
                  description=request.POST["description"],
                  price=request.POST["price"],
                  picture_url=file_name)
    #레코드를 저장함
    dto.save()
    #상품 목록으로 이동함
    return redirect("product_list")
project_dir = "C:/Users/Admin/Desktop/sample/enginesearch1/enginesearch/"

sys.path.append(project_dir)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django

django.setup()

from shop.models import Product

data2 = csv.reader(
    open("C:/Users/Admin/Desktop/sample/enginesearch1/Product1.csv"),
    delimiter=",")

for row in data2:
    if row[0] != 'number_id':
        product = Product()
        product.number_id = row[0]
        product.name = row[1]
        product.slug = row[2]
        product.description = row[3]
        product.price = row[4]
        product.available = row[5]
        product.stock = row[6]
        product.created_at = row[7]
        product.updated_at = row[8]
        product.image = row[9]
        product.save()
Exemplo n.º 32
0
from shop.models import Category, Product
c1 = Category(name="Mobile Devices")
c1.save()
c2 = Category(name="Computers")
c2.save()
p1 = Product(
    name="Apple iPhone X",
    price=1149.99,
    stock=12,
    description=
    "iPhone X features a new all-screen design. FaceID, which makes your face your password. And the most powerful and smartest chip ever in a smartphone.",
    category=c1)
p1.save()
p2 = Product(
    name="Google Pixel2",
    price=860.20,
    stock=14,
    description=
    "The unlocked Pixel 2 provides a clean, bloat-free experience with no unwanted apps, one of the highest rated smartphone cameras, with free unlimited storage.",
    category=c1)
p2.save()
p3 = Product(
    name="Sony Xperia ZX2",
    price=920.49,
    stock=9,
    description=
    "The Xperia XZ2 is packed with the latest Sony technologies to deliver an entertainment experience that touches your senses in a whole new way – whether you’re lost in a HDR movie or capturing hidden details with the new advanced Motion Eye™ camera.",
    category=c1)
p3.save()
p4 = Product(
    name="Dell Inspiron 175000",
Category.tree.rebuild()

ipsum = '''
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi mattis massa rhoncus dolor imperdiet feugiat. Etiam felis enim, interdum pulvinar pharetra ut, blandit sit amet neque. Aliquam semper, nunc nec fermentum dapibus, magna risus posuere quam, vitae tincidunt neque neque eu turpis. Donec convallis posuere mi, non venenatis felis tincidunt vitae. Morbi viverra elementum felis vitae blandit. Aliquam ut elit libero. Proin a dui magna. Morbi non lobortis sapien. Aliquam felis mi, sagittis vel fringilla sed, pellentesque a neque.</p>

	<p>Suspendisse sit amet nulla ut turpis rhoncus congue eget non justo. Sed dignissim ultricies porta. Nam euismod nisi vitae nisi porttitor in pretium risus lacinia. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu consequat eros. Etiam ipsum metus, sollicitudin id blandit ut, placerat eget metus. Nunc mi nisi, ultricies in sodales nec, lacinia sed neque. Nulla sodales justo et sapien volutpat nec mattis sapien tristique.</p>

	<p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas sed arcu odio, eu sagittis risus. Vestibulum vitae lectus eu nisi imperdiet bibendum vitae ac mauris. Ut a ante eu lorem bibendum gravida quis nec elit. Suspendisse nec tellus velit. Sed at volutpat mi. Duis posuere faucibus venenatis. Proin ante diam, pharetra a vehicula vitae, tempus ac ipsum. Morbi nulla lectus, dapibus vitae sodales non, faucibus eget eros.</p>

	<p>Aenean metus mauris, mollis id ornare quis, facilisis vitae nunc. Aenean rutrum eleifend accumsan. Nulla facilisi. Suspendisse at odio nunc, mollis aliquet justo. Proin consequat condimentum nisl, tincidunt pretium mi egestas consectetur. In porta lorem ut neque rutrum tincidunt. Mauris arcu nibh, lobortis non rutrum id, tempor at massa. Nullam at faucibus ante. Integer tellus lorem, sagittis at gravida ac, pretium semper metus. Mauris sit amet justo lectus, nec convallis metus. Curabitur scelerisque nulla luctus ipsum pulvinar pharetra. Mauris semper nulla vel mauris tempor et ultrices est volutpat. Duis nibh tortor, facilisis at lobortis nec, rutrum vitae enim. Aenean tempor mi et est blandit vel vulputate erat tristique. Ut sed ligula sed nibh accumsan placerat a eget neque. Aliquam vulputate sodales congue.</p>

	<p>Nulla aliquam faucibus dictum. Donec a lectus at nisl rhoncus tincidunt ut sit amet nulla. Morbi eget dui orci, non adipiscing sapien. Suspendisse pharetra vulputate auctor. Aliquam accumsan, justo id interdum mattis, orci mi pretium est, id feugiat nisi nunc vel ante. Duis tincidunt, arcu sit amet imperdiet semper, sem elit pharetra neque, ut consectetur tortor est quis eros. Nulla eget libero non elit gravida auctor. Integer vehicula ullamcorper porta. Donec eleifend facilisis lacus nec condimentum. Pellentesque imperdiet, elit eget bibendum volutpat, neque tortor consectetur mi, a pharetra velit arcu quis purus. Nam consectetur urna felis. Suspendisse condimentum ligula eu mauris laoreet in consequat turpis imperdiet.</p>

	<p>Curabitur sagittis tellus at lectus rutrum tristique. Maecenas viverra, orci ut pulvinar placerat, elit ante suscipit odio, sit amet tempus dui risus vel justo. Quisque eget tellus lacus. Mauris sit amet neque sed nunc malesuada tempor. Aenean malesuada odio non risus interdum eu ultrices metus ornare. Morbi eleifend, diam quis bibendum porttitor, nibh mauris varius erat, ultricies luctus est enim sed diam. Proin pretium porta ornare. Fusce enim nibh, volutpat non vulputate in, dapibus vitae diam. Nulla luctus augue mattis augue ultricies tempus dictum metus malesuada. Fusce velit sem, porttitor eget vehicula in, sagittis at odio. Nullam vitae sapien non quam eleifend dapibus nec sit amet elit. Donec dapibus ultricies odio bibendum aliquet. Vivamus interdum dui in mauris pellentesque elementum. Praesent at nibh et augue facilisis consequat in sit amet libero. Maecenas id felis vel nibh pharetra cursus at sit amet nulla.</p>

	<p>Donec mattis egestas enim eu accumsan. Curabitur posuere purus mollis massa ullamcorper ac tempus mauris blandit. Sed nunc nisi, pharetra et fringilla a, vestibulum cursus metus. Etiam porttitor, purus in tempor imperdiet, ligula purus mollis felis, id tincidunt enim tellus quis nibh. Vestibulum nec mi ante. Nam dapibus nisi sed justo dignissim in euismod eros consectetur. Suspendisse tincidunt orci et eros dapibus eu ornare metus tempor. Quisque nec iaculis ligula. Quisque in vehicula turpis. Integer vehicula, dui ac lobortis vestibulum, erat augue volutpat turpis, nec tristique leo leo eget neque.</p>

	<p>Mauris vitae lectus et velit imperdiet scelerisque at id metus. Etiam viverra convallis neque, at sollicitudin orci interdum nec. Nulla purus odio, tempor non pellentesque nec, luctus eget magna. Suspendisse non erat augue, sit amet porttitor ligula. Quisque at orci ante. Aliquam vitae ligula dui. Praesent aliquam, eros nec commodo dignissim, nisi ipsum rutrum sapien, vel tincidunt tortor tellus sed velit. Quisque laoreet ipsum at risus tempus at rhoncus erat mattis. Praesent nec viverra diam. Quisque ut nisi cursus sem scelerisque rhoncus non non massa. Nunc eu leo augue, quis tristique libero. Vivamus a eros ut libero dapibus ultrices id sit amet magna. Suspendisse commodo congue mi, et varius dui vehicula sit amet. Aliquam dignissim gravida sapien, ut laoreet nibh rutrum sed.</p>

	<p>Aenean vitae adipiscing leo. Pellentesque ligula mi, scelerisque at molestie eget, lobortis porta ante. Maecenas sapien mauris, tempor et ornare nec, viverra rhoncus dui. Etiam neque lacus, hendrerit et blandit sit amet, imperdiet et turpis. Nunc elementum convallis libero in faucibus. Sed ullamcorper turpis sit amet ipsum tristique sed pretium lacus fermentum. Nunc tempus sagittis tortor, sed varius nibh sollicitudin ut. Nulla ac suscipit mauris. Fusce in sapien purus. Integer mauris est, auctor ac ultrices at, vehicula mollis justo. Duis venenatis facilisis mollis.</p>

	<p>In congue euismod nulla, id commodo odio hendrerit a. Aliquam feugiat cursus convallis. Nulla nec elit consectetur metus aliquam egestas. Pellentesque laoreet velit sed nunc posuere eget gravida magna condimentum. Duis at metus tortor, eu vestibulum dui. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In volutpat lorem vel mi interdum pretium molestie justo pulvinar. Fusce laoreet adipiscing quam, quis fermentum ante lacinia eu. Vivamus eleifend auctor turpis a dictum. Nam in purus quis diam blandit suscipit vitae in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eu nulla et nunc porta mollis lobortis et quam.</p>'''

lorem = ipsum.split('</p>')
for i in lorem:
    category = Category.objects.order_by('?')[0]
    name = strip_tags(i).strip()[:20]
    slug = slugify(name)
    product = Product(name=name, slug=slug, active=True, body=i, unit_price=Decimal(random.randint(50, 1000)), main_category=category, weigth_in_grams=250)
    product.save()
    product.additional_categories.add(category)
Exemplo n.º 34
0
def add_product(request):
    product = Product(name = request.POST['name'], price = request.POST['price'])
    product.save()
    return render_to_response('product/form.html', {'action': 'add', 'button': 'Dodaj', 'message': 'Dodano produkt'})