From cf600a8c1b74e2baeff58adbd004b5e6677391db Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 17 Feb 2021 11:31:39 +0000 Subject: [PATCH] added domain to product.image url --- products/serializers.py | 17 +++++++++++++++++ products/views.py | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/products/serializers.py b/products/serializers.py index 0f09d36..8b59ec9 100644 --- a/products/serializers.py +++ b/products/serializers.py @@ -10,12 +10,29 @@ class ProductSerializer(TaggitSerializer, serializers.ModelSerializer): tags = TagListSerializerField(required=False) category = SingleTagSerializerField(required=False) # main tag category attributes = TagListSerializerField(required=False) + # image = serializers.SerializerMethodField() class Meta: model = Product exclude = ['created', 'updated', 'creator'] +class ProductSearchSerializer(TaggitSerializer, serializers.ModelSerializer): + + tags = TagListSerializerField(required=False) + category = SingleTagSerializerField(required=False) # main tag category + attributes = TagListSerializerField(required=False) + image = serializers.SerializerMethodField() + + class Meta: + model = Product + exclude = ['created', 'updated', 'creator'] + + def get_image(self, instance): + request = self.context.get('request') + return request.build_absolute_uri(instance.image.url) + + class TagFilterSerializer(TaggitSerializer, serializers.ModelSerializer): tags = TagListSerializerField(required=False) diff --git a/products/views.py b/products/views.py index 9a3b5b5..61a332e 100644 --- a/products/views.py +++ b/products/views.py @@ -18,7 +18,7 @@ from rest_framework.decorators import api_view, permission_classes, action import requests from products.models import Product -from products.serializers import ProductSerializer, TagFilterSerializer +from products.serializers import ProductSerializer, TagFilterSerializer, ProductSearchSerializer from companies.models import Company from history.models import HistorySync @@ -175,7 +175,7 @@ def product_search(request): # extract filters from result_set filters = extract_search_filters(result_set) # serialize and respond - product_serializer = ProductSerializer(result_set, many=True) + product_serializer = ProductSearchSerializer(result_set, many=True, context={'request': request}) return Response(data={"filters": filters, "products": product_serializer.data}) except Exception as e: return Response({"errors": {"details": str(type(e))}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)