category fields to'girndi

This commit is contained in:
2026-04-17 16:21:41 +05:00
parent 8dbb159285
commit eb7c4ab11c
2 changed files with 8 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ from core.apps.vendors.models import CategoryModel, SectionModel
class BaseCategorySerializer(serializers.ModelSerializer): class BaseCategorySerializer(serializers.ModelSerializer):
section = serializers.SlugRelatedField(slug_field='firestore_id', queryset=SectionModel.objects.all(), required=False, allow_null=True) section = serializers.SlugRelatedField(slug_field='firestore_id', queryset=SectionModel.objects.all(), required=False, allow_null=True)
products_count = serializers.IntegerField(read_only=True, default=0)
class Meta: class Meta:
model = CategoryModel model = CategoryModel
@@ -18,6 +19,7 @@ class BaseCategorySerializer(serializers.ModelSerializer):
"photo_url", "photo_url",
"is_publish", "is_publish",
"order", "order",
"products_count",
] ]
def to_representation(self, instance): def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)

View File

@@ -1,3 +1,4 @@
from django.db.models import Count
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from django_core.mixins import BaseViewSetMixin from django_core.mixins import BaseViewSetMixin
from drf_spectacular.utils import extend_schema from drf_spectacular.utils import extend_schema
@@ -24,6 +25,11 @@ class CategoryView(BaseViewSetMixin, ModelViewSet):
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend]
filterset_class = CategoryFilter filterset_class = CategoryFilter
def get_queryset(self):
return super().get_queryset().annotate(
products_count=Count("products")
)
action_permission_classes = {} action_permission_classes = {}
action_serializer_class = { action_serializer_class = {
"list": ListCategorySerializer, "list": ListCategorySerializer,