Reputation: 1201
I am facing problem in returned image url, which is not proper.
My return image URL is
"/media/slider_image/image/slider_image_4ea48daf-477d-4f00-93cb-7ac87c6f4002.JPG",
but actual URL expected from serializer is
http://127.0.0.1:8000/media/slider_image/image/slider_image_4ea48daf-477d-4f00-93cb-7ac87c6f4002.JPG
Here is my snippet of my Code that I have tried.
class ListSliderSerializer(SliderSerializers):
images = serializers.SerializerMethodField('get_images')
def get_images(self, instance):
return [slider_image.image.url for slider_image in instance.slider_image.all()]
class Meta(SliderSerializers.Meta):
fields = (
'images',
'section',
'tag',
)
what should i return in
return [slider_image.image.url for slider_image in instance.slider_image.all()]
to get full url for my image?
Upvotes: 0
Views: 1957
Reputation: 88499
You can use the request.build_absolute_uri(...)
--(doc) method as
class ListSliderSerializer(SliderSerializers):
images = serializers.SerializerMethodField('get_images')
def get_images(self, instance):
request = self.context["request"]
return [
request.build_absolute_uri(slider_image.image.url)
for slider_image in instance.slider_image.all()
]
class Meta(SliderSerializers.Meta):
fields = (
'images',
'section',
'tag',
)
Also note that you must pass request
to the serializer as context data
Upvotes: 1