Advertisement
Guest User

Untitled

a guest
Jun 9th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. urlpatterns = [
  2.     path('', views.products_list, name='product_list'),
  3.     path('<str:category_slug/>', views.products_list_by_category, name='product_list_by_category'),
  4.     path('<str:category_slug/<str:slug>/', views.products_detail, name='product_detail'),
  5. ]
  6.  
  7. def products_list_by_category(request, category_slug):
  8.     template_name = 'products/product-list.html'
  9.     products_list = Product.objects.filter(category__slug=category_slug).order_by('price')
  10.     categories = Category.objects.all()
  11.     product_filter = ProductFilter(request.GET, queryset=products_list)
  12.     products_list = product_filter.qs
  13.     quantity = products_list.count()
  14.  
  15.     if products_list:
  16.         min_price = products_list.first().price
  17.         max_price = products_list.last().price
  18.  
  19.     paginator = Paginator(products_list, 16)
  20.     page = request.GET.get('page')
  21.  
  22.     try:
  23.         products = paginator.page(page)
  24.     except PageNotAnInteger:
  25.         products = paginator.page(1)
  26.     except EmptyPage:
  27.         products = paginator.page(paginator.num_pages)
  28.    
  29.     context = { 'products': products,
  30.                 'categories': categories,
  31.                 'product_filter': product_filter,
  32.                 'quantity': quantity,
  33.                 }
  34.  
  35.     if products_list:
  36.         context['max_price'] = max_price
  37.         context['min_price'] = min_price
  38.  
  39.     return render(request, template_name, context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement