From e46632ac3bb4ef1c1050f490894c0130d2b19063 Mon Sep 17 00:00:00 2001 From: Husanjonazamov Date: Tue, 17 Mar 2026 15:30:43 +0500 Subject: [PATCH] filter qoshildi --- core/apps/vendors/filters/category.py | 7 +++---- core/apps/vendors/filters/vendor.py | 7 +++---- core/apps/vendors/filters/vendor_product.py | 11 ++++++----- core/apps/vendors/views/category.py | 5 ++++- core/apps/vendors/views/section.py | 2 ++ core/apps/vendors/views/vendor.py | 5 ++++- core/apps/vendors/views/vendor_product.py | 7 ++++++- 7 files changed, 28 insertions(+), 16 deletions(-) diff --git a/core/apps/vendors/filters/category.py b/core/apps/vendors/filters/category.py index 7930b73..e114313 100644 --- a/core/apps/vendors/filters/category.py +++ b/core/apps/vendors/filters/category.py @@ -1,13 +1,12 @@ from django_filters import rest_framework as filters - from core.apps.vendors.models import CategoryModel - class CategoryFilter(filters.FilterSet): - # name = filters.CharFilter(field_name="name", lookup_expr="icontains") + title = filters.CharFilter(field_name="title", lookup_expr="icontains") class Meta: model = CategoryModel fields = [ - "name", + "section", + "is_publish", ] diff --git a/core/apps/vendors/filters/vendor.py b/core/apps/vendors/filters/vendor.py index e971bbf..9717dcd 100644 --- a/core/apps/vendors/filters/vendor.py +++ b/core/apps/vendors/filters/vendor.py @@ -1,13 +1,12 @@ from django_filters import rest_framework as filters - from core.apps.vendors.models import VendorModel - class VendorFilter(filters.FilterSet): - # name = filters.CharFilter(field_name="name", lookup_expr="icontains") + title = filters.CharFilter(field_name="title", lookup_expr="icontains") class Meta: model = VendorModel fields = [ - "name", + "section", + "is_active", ] diff --git a/core/apps/vendors/filters/vendor_product.py b/core/apps/vendors/filters/vendor_product.py index bf458a3..78b9d61 100644 --- a/core/apps/vendors/filters/vendor_product.py +++ b/core/apps/vendors/filters/vendor_product.py @@ -4,20 +4,21 @@ from core.apps.vendors.models import ProductimageModel, VendorproductModel class VendorproductFilter(filters.FilterSet): - # name = filters.CharFilter(field_name="name", lookup_expr="icontains") + name = filters.CharFilter(field_name="name", lookup_expr="icontains") class Meta: model = VendorproductModel fields = [ - "name", + "vendor", + "category", + "section", + "is_publish", ] class ProductimageFilter(filters.FilterSet): - # name = filters.CharFilter(field_name="name", lookup_expr="icontains") - class Meta: model = ProductimageModel fields = [ - "name", + "product", ] diff --git a/core/apps/vendors/views/category.py b/core/apps/vendors/views/category.py index 6ec212a..c6daf74 100644 --- a/core/apps/vendors/views/category.py +++ b/core/apps/vendors/views/category.py @@ -1,9 +1,11 @@ +from django_filters.rest_framework import DjangoFilterBackend from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny from rest_framework.viewsets import ReadOnlyModelViewSet from core.apps.vendors.models import CategoryModel +from core.apps.vendors.filters.category import CategoryFilter from core.apps.vendors.serializers.category import ( CreateCategorySerializer, ListCategorySerializer, @@ -19,7 +21,8 @@ class CategoryView(BaseViewSetMixin, ModelViewSet): lookup_field = "firestore_id" serializer_class = ListCategorySerializer permission_classes = [AllowAny] - filterset_fields = ["section", "is_publish"] + filter_backends = [DjangoFilterBackend] + filterset_class = CategoryFilter action_permission_classes = {} action_serializer_class = { diff --git a/core/apps/vendors/views/section.py b/core/apps/vendors/views/section.py index af8e2c7..9ff173b 100644 --- a/core/apps/vendors/views/section.py +++ b/core/apps/vendors/views/section.py @@ -1,3 +1,4 @@ +from django_filters.rest_framework import DjangoFilterBackend from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny @@ -16,6 +17,7 @@ class SectionView(BaseViewSetMixin, ModelViewSet): queryset = SectionModel.objects.all() serializer_class = ListSectionSerializer permission_classes = [AllowAny] + filter_backends = [DjangoFilterBackend] filterset_fields = ["is_active"] action_permission_classes = {} diff --git a/core/apps/vendors/views/vendor.py b/core/apps/vendors/views/vendor.py index aef2b2f..3a7a139 100644 --- a/core/apps/vendors/views/vendor.py +++ b/core/apps/vendors/views/vendor.py @@ -1,9 +1,11 @@ +from django_filters.rest_framework import DjangoFilterBackend from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny from rest_framework.viewsets import ReadOnlyModelViewSet from core.apps.vendors.models import VendorModel +from core.apps.vendors.filters.vendor import VendorFilter from core.apps.vendors.serializers.vendor import CreateVendorSerializer, ListVendorSerializer, RetrieveVendorSerializer @@ -15,7 +17,8 @@ class VendorView(BaseViewSetMixin, ModelViewSet): lookup_field = "firestore_id" serializer_class = ListVendorSerializer permission_classes = [AllowAny] - filterset_fields = ["section", "is_active"] + filter_backends = [DjangoFilterBackend] + filterset_class = VendorFilter action_permission_classes = {} action_serializer_class = { diff --git a/core/apps/vendors/views/vendor_product.py b/core/apps/vendors/views/vendor_product.py index 7dd0558..6bab8a6 100644 --- a/core/apps/vendors/views/vendor_product.py +++ b/core/apps/vendors/views/vendor_product.py @@ -15,6 +15,8 @@ from core.apps.vendors.serializers.vendor_product import ( from rest_framework.viewsets import ModelViewSet +from django_filters.rest_framework import DjangoFilterBackend +from core.apps.vendors.filters.vendor_product import ProductimageFilter, VendorproductFilter from core.apps.vendors.pagination import VendorProductCursorPagination @extend_schema(tags=["VendorProduct"]) @@ -24,7 +26,8 @@ class VendorproductView(BaseViewSetMixin, ModelViewSet): serializer_class = ListVendorproductSerializer permission_classes = [AllowAny] pagination_class = VendorProductCursorPagination - filterset_fields = ["vendor", "category", "section"] + filter_backends = [DjangoFilterBackend] + filterset_class = VendorproductFilter action_permission_classes = {} action_serializer_class = { @@ -41,6 +44,8 @@ class ProductimageView(BaseViewSetMixin, ReadOnlyModelViewSet): queryset = ProductimageModel.objects.all() serializer_class = ListProductimageSerializer permission_classes = [AllowAny] + filter_backends = [DjangoFilterBackend] + filterset_class = ProductimageFilter action_permission_classes = {} action_serializer_class = {