def product_detail(request, category_slug, slug): product = get_object_or_404(Product, slug=slug) related_products = list( product.category.products.filter(parent=None).exclude(id=product.id)) if len(related_products) >= 50: related_products = random.sample(related_products, 50) if product.parent: return redirect('product_detail', category_slug=category_slug, slug=product.parent.slug) imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % ( product.thumbnail.url, product.image.url) for image in product.images.all(): imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," % (image.thumbnail.url, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False context = { 'product': product, 'imagesstring': imagesstring, 'related_products': related_products } return render(request, 'product_detail.html', context)
def product_detail(request, category_slug, slug): """ Return details about a specific product according to a request Params: - category_slug:[String] A specific ID-like string for a specific category - slug: [String] A specific ID-like string for a specific product Return: -[Render]: Return a product_detail.html containing information about a specific product """ product = get_object_or_404(Product, slug=slug) product.num_visits += 1 product.last_visit = datetime.now() product.save() # Add review if request.method == 'POST' and request.user.is_authenticated: stars = request.POST.get('stars', 3) content = request.POST.get('content', '') review = ProductReview.objects.create(product=product, user=request.user, stars=stars, content=content) return redirect('product_detail', category_slug=category_slug, slug=slug) # related_products = list( product.category.products.all().exclude(id=product.id)) if (len(related_products) >= 3): related_products = random.sample(related_products, 3) imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % ( product.thumbnail.url, product.image.url) # for image in product.images.all(): # imagesstring += ("{'thumbnail': '%s', 'image': '%s'}," %(image.thumbnail.url, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False owned_stores = utils.get_owned_stores(request) product_form = EditProductForm(instance=product, stores=owned_stores) context = { 'product': product, 'imagesstring': imagesstring, 'related_products': related_products, 'owned_stores': owned_stores, 'product_form': product_form, } return render(request, 'product_detail.html', context)
def product_detail(request, category_slug, slug): product = get_object_or_404(Product, slug=slug) if product.parent: return redirect('product_detail', category_slug=category_slug, slug=product.parent.slug) imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % ( product.thumbnail.url, product.image.url) for image in product.images.all(): imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," % (image.thumbnail.url, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False context = {'product': product, 'imagesstring': imagesstring} return render(request, 'product_detail.html', context)
def product_detail(request, category_slug, slug): product = get_object_or_404(Product, slug=slug) product.num_visits = product.num_visits + 1 product.last_visit = datetime.now() product.save() # Add review if request.method == 'POST' and request.user.is_authenticated: stars = request.POST.get('stars', 3) content = request.POST.get('content', '') review = ProductReview.objects.create(product=product, user=request.user, stars=stars, content=content) return redirect('product_detail', category_slug=category_slug, slug=slug) # related_products = list( product.category.products.filter(parent=None).exclude(id=product.id)) if len(related_products) >= 3: related_products = random.sample(related_products, 3) if product.parent: return redirect('product_detail', category_slug=category_slug, slug=product.parent.slug) imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % ( product.thumbnail.url, product.image.url) for image in product.images.all(): imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," % (image.thumbnail.url, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False context = { 'product': product, 'imagesstring': imagesstring, 'related_products': related_products } return render(request, 'product_detail.html', context)
def product_detail(request, category_slug, slug): product = get_object_or_404(Product, slug=slug) # Get product object # Increase number of visist for each visit & Update last visit product.num_visits += 1 product.last_visit = datetime.now() product.save() # Add review if request.method == 'POST': stars = request.POST.get('stars', 3) content = request.POST.get('content', '') review = ProductReview.objects.create(product=product, user=request.user, stars=stars, content=content) # Create review object return redirect('product_detail', category_slug=category_slug, slug=slug) # Get and Show related products related_products = list(product.category.products.filter(parent=None).exclude(id=product.id)) # Testing if len(related_products) >= 3: related_products = random.sample(related_products, 3) if product.parent: return redirect('product_detail', category_slug=category_slug, slug=product.parent.slug) # If product has parent (if product is variant) redirect to parent product imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (product.get_thumbnail, product.image.url) for image in product.images.all(): imagesstring += ("{'thumbnail': '%s', 'image': '%s'}," % (image.get_thumbnail, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False context = { 'product': product, 'imagesstring': imagesstring, 'related_products': related_products } return render(request, 'product_detail.html', context)
def product_detail(request, category_slug, slug): product = get_object_or_404(Product, slug=slug) # Add review if request.method == 'POST' and request.user.is_authenticated: stars = request.POST.get('stars', 5) content = request.POST.get('content', '') review = ProductReview.objects.create(product=product, user=request.user, stars=stars, content=content) return redirect('product_detail', category_slug=category_slug, slug=slug) # imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % ( product.thumbnail.url, product.image.url) for image in product.images.all(): imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," % (image.thumbnail.url, image.image.url)) cart = Cart(request) if cart.has_product(product.id): product.in_cart = True else: product.in_cart = False context = {'product': product, 'imagesstring': imagesstring} return render(request, 'product_detail.html', context)