Skip to content

Commit 2582411

Browse files
committed
Add django-filter integration for product filtering
1 parent 2fb6349 commit 2582411

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

DjangoEcommerceApp/AdminViews.py

Lines changed: 5 additions & 4 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):
@@ -264,10 +265,10 @@ class ProductListView(ListView):
264265
paginate_by=3
265266

266267
def get_queryset(self):
267-
filter_val=self.request.GET.get("filter","")
268+
self.filterset = ProductFilter(self.request.GET, queryset=super().get_queryset())
268269
order_by=self.request.GET.get("orderby","id")
269-
if filter_val!="":
270-
products=Products.objects.filter(Q(product_name__contains=filter_val) | Q(product_description__contains=filter_val)).order_by(order_by)
270+
if self.request.GET.get("product_name"):
271+
products=self.filterset.qs.order_by(order_by)
271272
else:
272273
products=Products.objects.all().order_by(order_by)
273274

@@ -283,9 +284,9 @@ def get_context_data(self,**kwargs):
283284
context["filter"]=self.request.GET.get("filter","")
284285
context["orderby"]=self.request.GET.get("orderby","id")
285286
context["all_table_fields"]=Products._meta.get_fields()
287+
context["all_products"]=Products.objects.all()
286288
return context
287289

288-
289290
class ProductEdit(View):
290291

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

0 commit comments

Comments
 (0)