[Django]-How to get the complete URL of a media in Django Rest views

6👍

✅

You need to send context = {'request':request} in serializer like this …

Way – 1

# serialized data
pinned_data = ArticlesSerializer(pinned_article,context = {'request':request})
horizontal_data = ArticlesSerializer(data[:3], many=True,context = {'request':request})
small_data = ArticlesSerializer(data[3:8], many=True,context = {'request':request})
card_data = ArticlesSerializer(data[8:], many=True,context = {'request':request})

way – 2 (for applying this method you need to add context = {‘request’:request}` in serializer like the above method.

class ArticleSerializer(serializers.ModelSerializer):
    cover = serializers.SerializerMethodField()
    def get_cover(self,obj):
        request = self.context.get('request')
        return str(request.build_absolute_uri(obj.cover.url))

Leave a comment