Skip to content

Commit 5aaa10e

Browse files
committed
Add django-filter integration for product filtering
1 parent eeb6b30 commit 5aaa10e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

DjangoEcommerceApp/AdminViews.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.db.models import Q
1111
from DjangoEcommerce.settings import BASE_URL
1212
from django.views.decorators.csrf import csrf_exempt
13+
from .filters import ProductFilter
1314

1415
@login_required(login_url="/admin/")
1516
def admin_home(request):
@@ -194,7 +195,6 @@ def get(self,request,*args,**kwargs):
194195
categories_list.append({"category":category,"sub_category":sub_category})
195196

196197
merchant_users=MerchantUser.objects.filter(auth_user_id__is_active=True)
197-
198198
return render(request,"admin_templates/product_create.html",{"categories":categories_list,"merchant_users":merchant_users})
199199

200200
def post(self,request,*args,**kwargs):
@@ -264,9 +264,12 @@ class ProductListView(ListView):
264264
paginate_by=3
265265

266266
def get_queryset(self):
267+
self.filterset = ProductFilter(self.request.GET, queryset=super().get_queryset())
267268
filter_val=self.request.GET.get("filter","")
268269
order_by=self.request.GET.get("orderby","id")
269-
if filter_val!="":
270+
if self.request.GET.get("subcategories_id"):
271+
products=self.filterset.qs.order_by(order_by)
272+
elif filter_val!="":
270273
products=Products.objects.filter(Q(product_name__contains=filter_val) | Q(product_description__contains=filter_val)).order_by(order_by)
271274
else:
272275
products=Products.objects.all().order_by(order_by)
@@ -278,14 +281,15 @@ def get_queryset(self):
278281

279282
return product_list
280283

284+
281285
def get_context_data(self,**kwargs):
282286
context=super(ProductListView,self).get_context_data(**kwargs)
283287
context["filter"]=self.request.GET.get("filter","")
284288
context["orderby"]=self.request.GET.get("orderby","id")
285289
context["all_table_fields"]=Products._meta.get_fields()
290+
context["all_subCategories"]=SubCategories.objects.all()
286291
return context
287292

288-
289293
class ProductEdit(View):
290294

291295
def get(self,request,*args,**kwargs):

0 commit comments

Comments
 (0)