unit category added
This commit is contained in:
@@ -65,6 +65,48 @@ class AllCategories(APIView):
|
||||
categories_ser = self.serializer_class(
|
||||
instance=categories, many=True, context={'request': request})
|
||||
return Response(categories_ser.data, status=status.HTTP_200_OK)
|
||||
class UnitCategorySerializerV2(serializers.ModelSerializer):
|
||||
maincategorys = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = UnitCategoryModel
|
||||
fields = ['id', 'name', 'slug', 'icon', 'meta_title',
|
||||
'meta_description', 'image', 'maincategorys']
|
||||
|
||||
def get_maincategorys(self, obj):
|
||||
main_categories = obj.maincategorys.all()
|
||||
return MainCategorySerializer(main_categories, many=True, context=self.context).data
|
||||
|
||||
|
||||
class AllCategoriesV2(APIView):
|
||||
serializer_class = UnitCategorySerializerV2
|
||||
authentication_classes = []
|
||||
|
||||
@extend_schema(
|
||||
responses={
|
||||
200: UnitCategorySerializerV2(many=True),
|
||||
404: OpenApiTypes.OBJECT,
|
||||
},
|
||||
)
|
||||
def get(self, request):
|
||||
# Optimize query with prefetch_related to avoid N+1 queries
|
||||
unit_categories = UnitCategoryModel.objects.prefetch_related(
|
||||
Prefetch(
|
||||
'maincategorys',
|
||||
queryset=MainCategoryModel.objects.prefetch_related(
|
||||
Prefetch(
|
||||
'subcategorys',
|
||||
queryset=SubCategoryModel.objects.annotate(
|
||||
product_count=Count('products')
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
).all()
|
||||
|
||||
categories_ser = self.serializer_class(
|
||||
instance=unit_categories, many=True, context={'request': request})
|
||||
return Response(categories_ser.data, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
class ProductView(APIView):
|
||||
|
||||
Reference in New Issue
Block a user