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