From 88913df714fd2338b346c68741d6a7777644b9d2 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Fri, 21 Feb 2025 20:33:01 +0330 Subject: [PATCH 1/3] test varients response --- backend/product/serializers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/product/serializers.py b/backend/product/serializers.py index b195885..350bb15 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -116,7 +116,10 @@ class DynamicProductSerializer(serializers.ModelSerializer): } def get_variants(self, obj): - return ProductVariantSerialzier(instance=obj.variants.all(), many=True, context=self.context).data + varients = obj.variants.all() + colors = set(varient.color for varient in varients) + response = {color: ProductVariantSerialzier(instance=varients.filter(color=color), many=True, context=self.context).data for color in colors} + return response # def get_variants_colors(self, obj): # varients = obj.variants.all() @@ -149,3 +152,4 @@ class CommentSerializer(serializers.ModelSerializer): exclude = ('review_status', ) read_only_fields = ('review_status', 'product', 'user') + \ No newline at end of file From b5bb8b9b6f644c261a4ff85a9f1129ea07b9ff16 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Fri, 21 Feb 2025 20:50:45 +0330 Subject: [PATCH 2/3] list color --- backend/product/serializers.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/backend/product/serializers.py b/backend/product/serializers.py index 350bb15..0bfd852 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -89,7 +89,7 @@ class MainCategorySerializer(serializers.ModelSerializer): class DynamicProductSerializer(serializers.ModelSerializer): variants = serializers.SerializerMethodField() - # variants_colors = serializers.SerializerMethodField() + colors = serializers.SerializerMethodField() category = SubCategorySerializer(read_only=True) is_new = serializers.SerializerMethodField() related_products = serializers.SerializerMethodField() @@ -110,21 +110,21 @@ class DynamicProductSerializer(serializers.ModelSerializer): model = ProductModel fields = "__all__" view_type = { - 'list': ['id','name', 'rating', 'slug', 'category', 'variants'], - 'instance': ['id', 'name', 'description', 'rating', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'in_pack_items', 'variants'], + 'list': ['id','name', 'rating', 'slug', 'category', 'variants', 'colors'], + 'instance': ['id', 'name', 'description', 'rating', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'in_pack_items', 'variants', 'variants_colors'], 'chat': ['id', 'name', 'description', 'variants'] } def get_variants(self, obj): varients = obj.variants.all() colors = set(varient.color for varient in varients) - response = {color: ProductVariantSerialzier(instance=varients.filter(color=color), many=True, context=self.context).data for color in colors} - return response + return ProductVariantSerialzier(instance=varients, many=True, context=self.context).data - # def get_variants_colors(self, obj): - # varients = obj.variants.all() - # attributes = AttributeValue.objects.filter(variant__in=varients) - # return AttributeValueForProductListSerialzier(instance=attributes, many=True, context=self.context).data + + def get_colors(self, obj): + varients = obj.variants.all() + colors = list(set(varient.color for varient in varients)) + return colors def get_is_new(self, obj): @@ -152,4 +152,3 @@ class CommentSerializer(serializers.ModelSerializer): exclude = ('review_status', ) read_only_fields = ('review_status', 'product', 'user') - \ No newline at end of file From 36716f245dc3dcb3c6552f13580441d129bf9d70 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Fri, 21 Feb 2025 21:03:48 +0330 Subject: [PATCH 3/3] color for product instance --- backend/product/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/product/serializers.py b/backend/product/serializers.py index 0bfd852..6a1320a 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -111,7 +111,7 @@ class DynamicProductSerializer(serializers.ModelSerializer): fields = "__all__" view_type = { 'list': ['id','name', 'rating', 'slug', 'category', 'variants', 'colors'], - 'instance': ['id', 'name', 'description', 'rating', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'in_pack_items', 'variants', 'variants_colors'], + 'instance': ['id', 'name', 'description', 'rating', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'in_pack_items', 'variants', 'colors'], 'chat': ['id', 'name', 'description', 'variants'] }