def update_images_from_es(request): """ """ # First we delete all images Image.objects.all().delete() # sku, filename fh_images = open("%s/product_images.csv" % UPDATE_PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: # assign try: product = Product.objects.get(sku=row[0]) except ObjectDoesNotExist: pass else: filename = row[1] fh_image = open( os.path.join(UPDATE_PATH, "product_images", filename)) # create image cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.position = row[2] image.save() product.images.add(image) fh_image.close() return HttpResponse("")
def update_images_from_es(request): """ """ # First we delete all images Image.objects.all().delete() # sku, filename fh_images = open("%s/product_images.csv" % UPDATE_PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: # assign try: product = Product.objects.get(sku=row[0]) except ObjectDoesNotExist: pass else: filename = row[1] fh_image = open(os.path.join(UPDATE_PATH, "product_images", filename)) # create image cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.position = row[2] image.save() product.images.add(image) fh_image.close() return HttpResponse("")
def add_image(request, product_id): """Adds an image to product with passed product_id. """ product = lfs_get_object_or_404(Product, pk=product_id) if request.method == "POST": for file_content in request.FILES.values(): image = Image(content=product, title=file_content.name) image.image.save(file_content.name, file_content, save=True) # Refresh positions for i, image in enumerate(product.images.all()): image.position = i+1 image.save() product_changed.send(product, request=request) return HttpResponse(manage_images(request, product_id, as_string=True))
def add_image(request, product_id): """Adds an image to product with passed product_id. """ product = lfs_get_object_or_404(Product, pk=product_id) if request.method == "POST": for file_content in request.FILES.getlist("files[]"): image = Image(content=product, title=file_content.name) try: image.image.save(file_content.name, file_content, save=True) except Exception as e: logger.info("Upload image: %s %s" % (file_content.name, e)) continue # Refresh positions for i, image in enumerate(product.images.all()): image.position = (i + 1) * 10 image.save() product_changed.send(product, request=request) result = json.dumps({"name": file_content.name, "type": "image/jpeg", "size": "123456789"}) return HttpResponse(result, content_type='application/json')
def products(amount=20): """ """ import lfs.core.utils from lfs.catalog.models import Category from lfs.catalog.models import Image from lfs.catalog.models import Product from lfs.core.models import Shop from lfs.catalog.models import Property from lfs.catalog.models import PropertyOption from lfs.shipping.models import ShippingMethod from lfs.criteria.models import CartPriceCriterion Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(os.path.dirname(__file__), "data") fh = open(os.path.join(path, "image1.jpg"), 'rb') cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg"), 'rb') cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg"), 'rb') cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option = PropertyOption(name="Yellow", property=property, price=1.0) property_option.save() property_option = PropertyOption(name="Red", property=property, price=2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name="L", property=property, price=11.0) property_option.save() property_option = PropertyOption(name="M", property=property, price=12.0) property_option.save() shop = lfs.core.utils.get_default_shop() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [category_1, category_2, category_3, category_4, category_5, category_6, category_7] shop.save() # Create products for i in range(1, amount): p = Product(name="Rock-%s" % i, slug="rock-%s" % i, sku="rock-000%s" % i, price=i * 10) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "Rock-%s created" % i for i in range(1, amount): p = Product(name="Hemd-%s" % i, slug="hemd-%s" % i, sku="hemd-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "Hemd-%s created" % i for i in range(1, amount): p = Product(name="Pullover-%s" % i, slug="pullover-%s" % i, sku="pullover-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "Pullover-%s created" % i for i in range(1, amount): p = Product(name="Hose-%s" % i, slug="hose-%s" % i, sku="hose-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "Hose-%s created" % i
def products(amount=20): """ """ import lfs.core.utils from lfs.catalog.models import Category from lfs.catalog.models import Image from lfs.catalog.models import Product from lfs.core.models import Shop from lfs.catalog.models import Property from lfs.catalog.models import PropertyOption from lfs.shipping.models import ShippingMethod from lfs.criteria.models import CartPriceCriterion Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(os.getcwd(), "parts/lfs/lfs/utils/data") fh = open(os.path.join(path, "image1.jpg")) cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg")) cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg")) cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option = PropertyOption(name="Yellow", property=property, price=1.0) property_option.save() property_option = PropertyOption(name="Red", property=property, price=2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name="L", property=property, price=11.0) property_option.save() property_option = PropertyOption(name="M", property=property, price=12.0) property_option.save() shop = lfs.core.utils.get_default_shop() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [ category_1, category_2, category_3, category_4, category_5, category_6, category_7 ] shop.save() # Create products for i in range(1, amount): p = Product(name="Rock-%s" % i, slug="rock-%s" % i, sku="rock-000%s" % i, price=i * 10) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "Rock-%s created" % i for i in range(1, amount): p = Product(name="Hemd-%s" % i, slug="hemd-%s" % i, sku="hemd-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "Hemd-%s created" % i for i in range(1, amount): p = Product(name="Pullover-%s" % i, slug="pullover-%s" % i, sku="pullover-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "Pullover-%s created" % i for i in range(1, amount): p = Product(name="Hose-%s" % i, slug="hose-%s" % i, sku="hose-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "Hose-%s created" % i
def load_data(dataFile, imagesDir, clean=False, addWait=False, startFromLine=0, skipImages=False): if clean: for prod in Product.objects.all(): prod.delete() for cat in Category.objects.all(): cat.delete() data = open(dataFile, "r") categoryPos = 10 subcategoryPos = 10 serialPos = 10 counter = 0 for line in data.readlines(): line = line.decode('utf8') print 'counter', counter counter = counter + 1 if counter < startFromLine: continue brand, name, desc, price, category, subcategory, brand, serial = line.split('\t') serial = serial.strip() #print brand, name, desc, price, category, subcategory, brand, serial categorySlug = translit(category, reversed=True).replace(' ', '-').replace('\'', '') categoryObj, created = Category.objects.get_or_create(slug=categorySlug) #print categoryObj, created if not created: if categoryObj.level != 1: categoryObj, created = Category.objects.get_or_create(slug=categorySlug + '1') categoryObj.level = 1 categoryObj.name = category categoryObj.position = categoryPos categoryPos += 10 categoryObj.save() subcategorySlug = translit(subcategory, reversed=True).replace(' ', '-').replace('\'', '') subcategoryObj, created = Category.objects.get_or_create(slug=subcategorySlug) if not created: if subcategoryObj.level != 2: subcategoryObj, created = Category.objects.get_or_create(slug=subcategorySlug + '2') subcategoryObj.parent = categoryObj subcategoryObj.level = 2 subcategoryObj.name = subcategory subcategoryObj.position = subcategoryPos subcategoryPos += 10 subcategoryObj.save() serialSlug = translit(serial.strip(), reversed=True).replace(' ', '-').replace('\'', '').replace('(', '').replace(')', '').replace(',', '_') serialObj, created = Category.objects.get_or_create(slug=serialSlug) if not created: if serialObj.level != 3: serialObj, created = Category.objects.get_or_create(slug=serialSlug + '3') print serial.strip() serialObj.parent = subcategoryObj serialObj.name = serial.strip() serialObj.level = 3 serialObj.position = serialPos serialPos += 10 serialObj.save() manufacturer, created = Manufacturer.objects.get_or_create(name=brand) if created: manufacturer.save() try: productSlug = translit(name.strip(), reversed=True).replace(' ', '-').replace('\'', '').replace('(', '').replace(')', '').replace(',', '_').replace('+', '_') except: productSlug = name product, created = Product.objects.get_or_create(name=name) product.slug = productSlug product.active = 1 product.short_description = desc product.price = 1.15*int(price) product.manufacturer = manufacturer product.categories = [categoryObj, subcategoryObj, serialObj] product.save() if addWait: time.sleep(addWait) if skipImages: continue # to some dirs + sign was added #dirPath = imagesDir + '/' + category + '/' + subcategory + '/' + brand + '/' + serial + '/' + brand.lower() + '_' + product.name.lower().replace(' ', '_') dirPath = imagesDir #category dir if exists(dirPath + '/+' + category): dirPath += '/+' + category else: dirPath += '/' + category #subcategory dir if exists(dirPath + '/+' + subcategory): dirPath += '/+' + subcategory else: dirPath += '/' + subcategory #brand dir if exists(dirPath + '/+' + brand): dirPath += '/+' + brand else: dirPath += '/' + brand #serial dir if exists(dirPath + '/+' + serial): dirPath += '/+' + serial else: dirPath += '/' + serial #product dir prodDirRel = brand.lower() + '_' + product.name.lower().replace(' ', '_'); if exists(dirPath + '/+' + prodDirRel): dirPath += ('/+' + prodDirRel) else: dirPath += '/' + prodDirRel print 'dirPath', dirPath for (_dirPath, dirnames, filenames) in walk(dirPath): #print (_dirPath, dirnames, filenames) for fileName in filenames: print 'fileName', fileName for img in product.images.all(): img.delete() file = File(open(dirPath + '/' + fileName, 'r')) image = Image(content=product, title=fileName) try: image.image.save(fileName, file, save=True) except Exception, e: print e # Refresh positions for i, image in enumerate(product.images.all()): image.position = (i + 1) * 10 image.save() if addWait: time.sleep(addWait) # need only one image break #need only files of current dir break
def import_easyshop(request): """Imports Categories, Products and Product Images from ES. """ Category.objects.all().delete() Product.objects.all().delete() Image.objects.all().delete() ##### Categories categories_fh = open("%s/categories/categories.csv" % PATH) reader = csv.reader(categories_fh, delimiter=";", quotechar="'") # to save uid -> id for later use categories = {} products = {} for row in reader: category = Category.objects.create( name = row[2], slug = slugify(row[1]), description = row[6] ) # We map the new lfs category id with Plone's UID and save it. This is # later used to assign products, parent categories and images to the # category categories[row[0]] = category.id # Now as all categories exist we go through the categories again and assign # the parent category. categories_fh.seek(0) for row in reader: child_id = categories[row[0]] parent_id = categories.get(row[3]) category = Category.objects.get(pk=child_id) category.parent_id = parent_id category.save() ##### Category Images fh_images = open("%s/categories/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/categories" % PATH, filename)) cf = ContentFile(fh_image.read()) category_id = categories.get(row[0]) if category_id: category = Category.objects.get(pk=category_id) category.image.save(filename, cf) category.save() ##### Products products_fh = open("%s/products/products.csv" % PATH) reader = csv.reader(products_fh, delimiter=";", quotechar="'") for row in reader: try: price = float(row[6]) except: price = 0 print len(row[2]) product = Product.objects.create( name = row[2], slug = slugify(row[1]), sku = row[4], price = price, short_description = row[9], description = row[5], ) # We map the new lfs product id with Plone's UID and save it. This is # later used to assign images to the products products[row[0]] = product.id # Assign Categories for category_uid in row[7].split(","): category_id = categories.get(category_uid) if category_id: product.categories.add(category_id) product.save() ##### Product Image fh_images = open("%s/products/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/products/" % PATH, filename)) cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.save() product_id = products.get(row[0]) if product_id: product = Product.objects.get(pk=product_id) product.images.add(image) fh_image.close() return HttpResponse(reader)
def products(request): """ """ amount = int(request.GET.get("amount", 20)) Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() Shop.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(sys.path[0], "lfs/utils/data") fh = open(os.path.join(path, "image1.jpg")) cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg")) cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg")) cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option= PropertyOption(name = "Yellow", property = property, price = 1.0) property_option.save() property_option = PropertyOption(name = "Red", property = property, price = 2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name = "L", property = property, price = 11.0) property_option.save() property_option = PropertyOption(name = "M", property = property, price = 12.0) property_option.save() # Create shop shop = Shop(name="Test", shop_owner="Test") shop.save() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [category_1, category_2, category_3, category_4, category_5, category_6, category_7] shop.save() # Create products for i in range(1, amount): p = Product(name="1-%s" % i, slug="1-%s" % i, price=i) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "1-%s created" % i for i in range(1, amount): p = Product(name="2-%s" % i, slug="2-%s" % i, price=i*10) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "2-%s created" % i for i in range(1, amount): p = Product(name="3-%s" % i, slug="3-%s" % i, price=i*100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "3-%s created" % i for i in range(1, amount): p = Product(name="4-%s" % i, slug="4-%s" % i, price=i*100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "4-%s created" % i product = Product.objects.get(slug="1-1") return HttpResponseRedirect("/shops")
def import_easyshop(request): """Imports Categories, Products and Product Images from ES. """ Category.objects.all().delete() Product.objects.all().delete() Image.objects.all().delete() ##### Categories categories_fh = open("%s/categories/categories.csv" % PATH) reader = csv.reader(categories_fh, delimiter=";", quotechar="'") # to save uid -> id for later use categories = {} products = {} for row in reader: category = Category.objects.create(name=row[2], slug=slugify(row[1]), description=row[6]) # We map the new lfs category id with Plone's UID and save it. This is # later used to assign products, parent categories and images to the # category categories[row[0]] = category.id # Now as all categories exist we go through the categories again and assign # the parent category. categories_fh.seek(0) for row in reader: child_id = categories[row[0]] parent_id = categories.get(row[3]) category = Category.objects.get(pk=child_id) category.parent_id = parent_id category.save() ##### Category Images fh_images = open("%s/categories/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/categories" % PATH, filename)) cf = ContentFile(fh_image.read()) category_id = categories.get(row[0]) if category_id: category = Category.objects.get(pk=category_id) category.image.save(filename, cf) category.save() ##### Products products_fh = open("%s/products/products.csv" % PATH) reader = csv.reader(products_fh, delimiter=";", quotechar="'") for row in reader: try: price = float(row[6]) except: price = 0 print len(row[2]) product = Product.objects.create( name=row[2], slug=slugify(row[1]), sku=row[4], price=price, short_description=row[9], description=row[5], ) # We map the new lfs product id with Plone's UID and save it. This is # later used to assign images to the products products[row[0]] = product.id # Assign Categories for category_uid in row[7].split(","): category_id = categories.get(category_uid) if category_id: product.categories.add(category_id) product.save() ##### Product Image fh_images = open("%s/products/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/products/" % PATH, filename)) cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.save() product_id = products.get(row[0]) if product_id: product = Product.objects.get(pk=product_id) product.images.add(image) fh_image.close() return HttpResponse(reader)
def products(request): """ """ amount = int(request.GET.get("amount", 20)) Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() Shop.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(sys.path[0], "lfs/utils/data") fh = open(os.path.join(path, "image1.jpg")) cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg")) cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg")) cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option = PropertyOption(name="Yellow", property=property, price=1.0) property_option.save() property_option = PropertyOption(name="Red", property=property, price=2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name="L", property=property, price=11.0) property_option.save() property_option = PropertyOption(name="M", property=property, price=12.0) property_option.save() # Create shop shop = Shop(name="Test", shop_owner="Test") shop.save() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [ category_1, category_2, category_3, category_4, category_5, category_6, category_7 ] shop.save() # Create products for i in range(1, amount): p = Product(name="1-%s" % i, slug="1-%s" % i, price=i) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "1-%s created" % i for i in range(1, amount): p = Product(name="2-%s" % i, slug="2-%s" % i, price=i * 10) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "2-%s created" % i for i in range(1, amount): p = Product(name="3-%s" % i, slug="3-%s" % i, price=i * 100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "3-%s created" % i for i in range(1, amount): p = Product(name="4-%s" % i, slug="4-%s" % i, price=i * 100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "4-%s created" % i product = Product.objects.get(slug="1-1") return HttpResponseRedirect("/shops")