def search(request): products = models.Product.objects.all().order_by('description') if request.method == 'POST': form = forms.ProductSearchForm(request, data=request.POST) if form.is_valid(): products = form.search(products) else: form = forms.ProductSearchForm(request) for product in products: product.form = cart.AddProductForm(request, None, product) paginator = DiggPaginator(products, MAX_RESULTS, **DIGG_ATTRS) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 try: products = paginator.page(page) except (EmptyPage, InvalidPage): products = paginator.page(paginator.num_pages) data = dict( products=products, paginator=paginator, curpage=page, form=form ) return _render(request, 'product/list.html', data)
def _show_cart(request, cart, form=None): """ Display the contents of the cart selected """ products = models.Item.objects.filter(cart=cart).order_by('description') paginator = DiggPaginator(products, MAX_RESULTS, **DIGG_ATTRS) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 try: products = paginator.page(page) except (EmptyPage, InvalidPage): products = paginator.page(paginator.num_pages) data = dict( cart=cart, products=products, curpage=page, form=form, tax_rate=settings.TAX_RATE, shipping_rate=settings.SHIPPING_RATE ) return request_to_response(request, 'cart/index.html', data)
def get_context_data(self, **kwargs): context = super(PostListView, self).get_context_data(**kwargs) try: page = int(self.request.GET.get("page", "1")) except: page = 1 queryset = Post.objects.all().order_by("-rating") paginator = DiggPaginator(queryset, 12, body=5) categories = Category.objects.all().filter(show=True) context['page'] = paginator.page(page) context['base_url'] = self.request.META.get("PATH_INFO", "/") context['categories'] = categories context['current_page'] = page return context
def by_category(request, category_code): category = get_object_or_404(models.Category, code=category_code) products = models.Product.objects.filter(category=category).order_by('description') paginator = DiggPaginator(products, MAX_RESULTS, **DIGG_ATTRS) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 try: products = paginator.page(page) except (EmptyPage, InvalidPage): products = paginator.page(paginator.num_pages) data = dict( category=category, products=products, paginator=paginator, curpage=page, ) return _render(request, 'product/list.html', data)
def get_context_data(self, **kwargs): context = super(SearchView, self).get_context_data(**kwargs) q = self.request.GET.get("q", "泰国旅游") try: page = int(self.request.GET.get("page", "1")) except: page = 1 queryset = Post.objects.all().filter(title__icontains=q).order_by("-rating") categories = Category.objects.all().filter(show=True) paginator = DiggPaginator(queryset, 12, body=5) context['page'] = paginator.page(page) context['base_url'] = self.request.META.get("PATH_INFO", "/") context['categories'] = categories context['total_count'] = queryset.count() context['current_page'] = page context['q'] = q return context