From 5e830e75e77090c70af5aa32cc10a8616c300af3 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Sun, 7 Sep 2025 21:34:34 +0500 Subject: [PATCH] fix --- core/apps/admin_panel/views/product.py | 6 ++++-- core/apps/products/views/product.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/apps/admin_panel/views/product.py b/core/apps/admin_panel/views/product.py index 855e4b2..b74f081 100644 --- a/core/apps/admin_panel/views/product.py +++ b/core/apps/admin_panel/views/product.py @@ -1,6 +1,6 @@ from django.shortcuts import get_object_or_404 -from rest_framework import generics, views, status, parsers +from rest_framework import generics, views, status, parsers, filters from rest_framework.permissions import IsAdminUser from core.apps.admin_panel.serializers import product as serializers @@ -12,9 +12,11 @@ class ProductListApiView(generics.GenericAPIView): serializer_class = serializers.AdminProductListSerializer queryset = Product.objects.select_related('category', 'unity').order_by('name') permission_classes = [IsAdminUser] + filter_backends = [filters.SearchFilter] + search_fields = ['name'] def get(self, request): - page = self.paginate_queryset(self.queryset) + page = self.paginate_queryset(self.filter_queryset(self.queryset)) if page is not None: serializer = self.serializer_class(page, many=True) return self.get_paginated_response(serializer.data) diff --git a/core/apps/products/views/product.py b/core/apps/products/views/product.py index a99ff2d..d58d85b 100644 --- a/core/apps/products/views/product.py +++ b/core/apps/products/views/product.py @@ -1,6 +1,6 @@ from django.shortcuts import get_object_or_404 -from rest_framework import generics, views +from rest_framework import generics, views, filters from rest_framework.response import Response from core.apps.products.models import Product, Category @@ -11,11 +11,13 @@ class ProductListApiView(generics.GenericAPIView): serializer_class = serializers.ProductListSerializer queryset = Product.objects.select_related('unity') permission_classes = [] + filter_backends = [filters.SearchFilter] + search_fields = ['name'] def get(self, request, category_id): category = get_object_or_404(Category, id=category_id) products = Product.objects.filter(category=category).select_related('unity') - page = self.paginate_queryset(products) + page = self.paginate_queryset(self.filter_queryset(products)) if page is not None: serializer = self.serializer_class(page, many=True, context={'user': request.user}) return self.get_paginated_response(serializer.data)