def show_product(request, product_slug, template_name="catalog/product.html"): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description stats.log_product_view(request, p) # add to product view product_reviews = ProductReview.approved.filter(product=p).order_by('-date') review_form = ProductReviewForm() if request.method == 'POST': # add to cart…create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) #check if posted data is valid if form.is_valid(): #add to cart and redirect to cart page cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: # it’s a GET, create the unbound form. Note request as a kwarg form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() return render_to_response("catalog/product.html", locals(), context_instance=RequestContext(request)) return render_to_response(template_name, locals(),context_instance=RequestContext(request))
def show_product(request, product_slug, template_name="catalog/product.html"): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description if request.method == 'POST': # add to cart post_data = request.POST.copy() form = ProductAddToCartForm(request, post_data) if form.is_valid(): # add to cart and redirect to cart page carts.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() return redirect('cart:show_cart') else: form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() stats.log_product_view(request, p) # product review product_reviews = ProductReview.approved.filter( product=p).order_by('-date') review_form = ProductReviewForm() return render(request, template_name, context=locals())
def show_product(request, product_slug, template_name="catalog/product.html"): product = get_object_or_404(Product, slug=product_slug) categories = product.categories.all() page_title = product.name stats.log_product_view(request, product) meta_keywords = product.meta_keywords meta_description = product.meta_description if request.method == 'POST': postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) if form.is_valid(): cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: form = ProductAddToCartForm(request=request, label_suffix=':') form.fields['product_slug'].widget.attrs['value'] = product_slug request.session.set_test_cookie() product_reviews = ProductReview.approved.filter(product=product).order_by('-date') review_form = ProductReviewForm() return render_to_response("catalog/product.html", locals(), context_instance=RequestContext(request))
def show_product(request, product_slug, template_name="catalog/product.html"): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description if request.method == 'POST': # add to cart ... create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request,postdata) # check if posted data is valid if form.is_valid(): cart.add_to_cart(request) if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect else: form = ProductAddToCartForm(request=request, label_suffix=':') form.fields['product_slug'].widget.attrs['value'] = product_slug request.session.set_test_cookie() return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_product(request, product_slug, template_name='catalog/product.html'): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description # need to evaluate the HTTP method if request.method == 'POST': # add to cart...create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) # check if posted data is valid if form.is_valid(): # add to cart and redirect to cart page cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: # it's a GET, create the unbound form. Note request as a kwarg form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() stats.log_product_view(request, p) product_reviews = ProductReview.approved.filter( product=p).order_by('-date') review_form = ProductReviewForm() return render(request, template_name, locals())
def show_product(request, product_slug, template_name="catalog/product.html"): product = get_object_or_404(Product, slug=product_slug) categories = product.categories.all() page_title = product.name stats.log_product_view(request, product) meta_keywords = product.meta_keywords meta_description = product.meta_description if request.method == 'POST': postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) if form.is_valid(): cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: form = ProductAddToCartForm(request=request, label_suffix=':') form.fields['product_slug'].widget.attrs['value'] = product_slug request.session.set_test_cookie() product_reviews = ProductReview.approved.filter( product=product).order_by('-date') review_form = ProductReviewForm() return render_to_response("catalog/product.html", locals(), context_instance=RequestContext(request))
def show_product(request, product_slug, template_name="product.html"): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.filter(is_active=True) page_title = p.name if request.method == "POST": # add to cart postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) # check if posted data is valid if form.is_valid(): # add to cart and redirect to cart page mycart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse("cart") return HttpResponseRedirect(url) else: # it's a GET form = ProductAddToCartForm(request=request, label_suffix=":") # assign the hidden input the product slug form.fields["product_slug"].widget.attrs["value"] = product_slug # set teh test cookie on our first GET request request.session.set_test_cookie() return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_product(request, product_slug, template_name="product.html"): p = get_object_or_404(Product, slug=product_slug) categories = p.categories.all() page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description #retrieve images urls from ImageField Foreign Key model image_list = [] images = p.images.all().values() for img in images: image_list.append(img['image']) if request.method == 'POST': # add to cart...create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) if form.is_valid(): #add to cart and redirect to cart page carts.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: # it’s a GET, create the unbound form. Note request as a kwarg form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() return render_to_response('product.html', locals(), context_instance=RequestContext(request))
def show_product(request, product_slug): """ new product view, with POST vs GET detection """ p = get_object_or_404(Product, slug=product_slug) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description if request.method == 'POST': # add to cart... create the bound form post_data = request.POST.copy() product_add_to_cart_form = ProductAddToCartForm(request, post_data) # check if posted data is valid if product_add_to_cart_form.is_valid(): # add to cart and redirect to cart page cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() # url = urlresolvers.reverse('show_cart') # return HttpResponseRedirect(url) else: # it's a GET, create the unbound form. Note request as a kwarg product_add_to_cart_form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug product_add_to_cart_form.fields['product_slug'].widget.attrs[ 'value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() stats.log_product_view(request, p) customers_who_bought_this_p_also_bought = utils.products_bought_together(p) product_reviews = ProductReview.approved.filter( product=p).order_by('-date') review_form = ProductReviewForm() review_rating = ProductRatingForm() # rating promedio avg_rating = p.avg_rating() cant_rating = p.productrating_set.count() desired_by_user = False user_already_voted = 0 if request.user.is_authenticated(): # el usuario loguead ya voto por este prod? try: user_product_rating = ProductRating.objects.get(user=request.user, product=p) user_already_voted = user_product_rating.rating except ProductRating.DoesNotExist: user_already_voted = 0 # deseado por el usuario logueado? user_profile = profile.get_profile(request) if p in user_profile.wish_list.all(): desired_by_user = True return render_to_response("catalog/product.html", locals(), context_instance=RequestContext(request))
def post(self,request,*args,**kwargs): postdata = request.POST.copy() form = ProductAddToCartForm(request,postdata) if form.is_valid(): add_to_cart(request) if request.session.test_cookie_worked(): request.session.delete_test_cookie() return HttpResponseRedirect(reverse('show_cart')) form.fields['product_slug'].widget.attrs['value'] = kwargs['product_slug'] request.session.set_test_cookie() return render(request,self.template_name,locals())
def post(self, request, *args, **kwargs): postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) if form.is_valid(): add_to_cart(request) if request.session.test_cookie_worked(): request.session.delete_test_cookie() return HttpResponseRedirect(reverse('show_cart')) form.fields['product_slug'].widget.attrs['value'] = kwargs[ 'product_slug'] request.session.set_test_cookie() return render(request, self.template_name, locals())
def show_product(request, product_slug): #cache key is product path product_cache_key = request.path p = cache.get(product_cache_key) # if cache miss, fall back on database query if not p: p = get_object_or_404(Product.active, slug=product_slug) #store in cache for next time cache.set(product_cache_key, p, CACHE_TIMEOUT) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description product_reviews = ProductReview.approved.filter( product=p).order_by('-date') review_form = ProductReviewForm() template = 'catalog/product.html' if request.method == 'POST': postdata = request.POST form = ProductAddToCartForm(request, postdata) if form.is_valid(): #add to cart and redirect to cart page cart.add_to_cart(request) if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = reverse('show_cart') return HttpResponseRedirect(url) else: #it's a GET, create the unbound form. Note request as a kward form = ProductAddToCartForm(request=request, label_suffix=':') #assign the hidden imput the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug #set the test cookie on first GET request request.session.set_test_cookie() context = { 'p': p, 'categories': categories, 'page_title': page_title, 'meta_keywords': meta_keywords, 'meta_description': meta_description, 'form': form, 'product_reviews': product_reviews, 'review_form': review_form, } #log product in ProductView to recomend and get recently view products (this should be done using Django middleware class) x = stats.log_product_views(request, p) return render(request, template, context)
def show_product(request, product_slug, template_name="catalog/product.html"): if request.method == "POST": postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) if form.is_valid(): '''add to cart and redirect to cart page''' cart.add_to_cart(request) return HttpResponseRedirect(reverse('show_cart')) else: '''get''' form = ProductAddToCartForm() form.fields['product_slug'].widget.attrs['value'] = product_slug product = get_object_or_404(Product, slug=product_slug) categories = product.categories.filter(is_active=True) page_title = product.name meta_keywords = product.meta_keywords meta_description = product.meta_description return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_product(request, product_slug, template_name = "catalog/product.html"): product_cache_key = request.path # get product from cache p = cache.get(product_cache_key) # if a cache miss, fall back on database query if not p: p = get_object_or_404(Product, slug = product_slug) # store in cache for next time cache.set(product_cache_key, p, CACHE_TIMEOUT) #p = get_object_or_404(Product, slug = product_slug) from stats import stats stats.log_product_view(request, p) # add to product view categories = p.categories.all() page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description # need to evaluate the HTTP method if request.method == 'POST': # add to cart ... create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) # check if posted data is valid if form.is_valid(): # add to cart and redirect to cart page shoppingcart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: # it's a GET, create the unbound form. Note request as a kwarg form = ProductAddToCartForm(request = request, label_suffix = ':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() product_reviews = ProductReview.approved.filter(product = p).order_by('-date') review_form = ProductReviewForm() return render_to_response("catalog/product.html", locals(), context_instance = RequestContext(request))
def get(self, request, *args, **kwargs): p = get_object_or_404(Product, slug=kwargs['product_slug']) categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description form = ProductAddToCartForm(request, label_suffix=':') form.fields['product_slug'].widget.attrs['value'] = kwargs[ 'product_slug'] request.session.set_test_cookie() return render(request, self.template_name, locals())
def show_product(request, product_slug, template_name): """ view for each product page, with POST vs GET detection """ p = get_object_or_404(Product, slug=product_slug) # categories = p.categories.all() categories = p.categories.filter(is_active=True) page_title = p.name meta_keywords = p.meta_keywords meta_description = p.meta_description # evaluate the HTTP method, change as needed if request.method == 'POST': # add to cart # Create the bound form postdata = request.POST.copy() form = ProductAddToCartForm(request, postdata) # check if posted data is valid if form.is_valid(): # add to cart and redirect to cart page cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('cart:show_cart') return HttpResponseRedirect(url) else: # It's a GET, so create the unbound form, # And notice the request is passed as a keyword arg (kwargs) form = ProductAddToCartForm(request=request, label_suffix=':') # assign the hidden input the product slug form.fields['product_slug'].widget.attrs['value'] = product_slug # set the test cookie on our first GET request request.session.set_test_cookie() # return render_to_response( # template_name, locals(), RequestContext(request) # ) return render(request, template_name, locals(), RequestContext(request, processors=[context_processors]))