title: Django Rest Framework returns relative path instead of full url with SerializerMethodField
body: <p>I am experiencing a strange issue. I have been developing an application using Django and DRF along with react in frontend. My app has two models, Place and Cover. Every place has a cover image and here is the database schema.</p>
  
  <p>Image Table</p>
  
  <pre><code>+----+---------------------+----------+----------------------+
  | pk |        file         |  title   |     description      |
  +----+---------------------+----------+----------------------+
  |  1 | /media/my-image.jpg | My Image | My Image Description |
  +----+---------------------+----------+----------------------+
  </code></pre>
  
  <p>Place Table</p>
  
  <pre><code>+----+------+-------+
  | pk | code | cover |
  +----+------+-------+
  |  1 | abcd |     1 |
  +----+------+-------+
  </code></pre>
  
  <p>My operation is simple. I will request for place details using the place code and DRF will return the details. And here is what I wrote initially. </p>
  
  <pre><code>class ImageSerializer(ModelSerializer):
      class Meta:
          model = Image
          fields = ["pk", "file", "title", "description"]
  
  class PlaceDetailSerializer(ModelSerializer):
      cover = ImageSerializer()
  
      class Meta:
          model = Place
          fields = ["code", "cover"]
  
  class PlaceDetailView(RetrieveAPIView):
      serializer_class = PlaceDetailSerializer
      permission_classes = []
      queryset = Place.objects.filter(deleted=False, published=True)
      lookup_field = 'code'
      lookup_url_kwarg = 'code'
  
  </code></pre>
  
  <p>And here is the output of the request</p>
  
  <pre><code>{
      "code": "3469324020",
      "cover": {
          "pk": 13,
          "file": "http://127.0.0.1:8000/media/my-image.jpg ",
          "title": "My Image",
          "description": ""
      }
  }
  </code></pre>
  
  <p>Everything is fine so far. As I wanted the full url of my image and that's exactly what I have got. But the problem occurs when I start using <code>SerializerMethodField()</code></p>
  
  <pre><code>class PlaceDetailSerializer(ModelSerializer):
      cover = SerializerMethodField()
  
      def get_cover(self, place):
          return ImageSerializer(place.cover).data
  
      class Meta:
          model = Place
          fields = ["code", "cover"]
  </code></pre>
  
  <p>And here is the new response after the changes</p>
  
  <pre><code>{
      "code": "3469324020",
      "cover": {
          "pk": 13,
          "file": "/media/my-image.jpg",
          "title": "My Image",
          "description": ""
      }
  }
  </code></pre>
  
  <p>See? DRF is no longer returning absolute url but relative. I am curious why is that? Is it related to DRF context params??</p>
  
  <p>I have also noticed that the absolute url doesn't work with APIView either. </p>
  
  <pre><code>class PlaceDetailSerializer(ModelSerializer):
      cover = ImageSerializer()
  
      class Meta:
          model = Place
          fields = ["code", "cover"]
  
  
  class PlaceDetailView( APIView ):
      serializer_class = PlaceDetailSerializer
      permission_classes = []
      queryset = Place.objects.filter(deleted=False, published=True)
      lookup_field = 'code'
      lookup_url_kwarg = 'code'
  
      def get(self, request, *args, **kwargs):
          place = Place.objects.get(code=kwargs.get("code"))
          return Response(PlaceDetailSerializer(place).data)
  </code></pre>
  
  <p>It will also return the relative url as output.</p>
  
  <hr>
  
  <p>Now I know that there are ways to return full url using <code>get_absolute_url()</code> or other functions. But I am just curious why this isn't working with <code>SerializerMethodField</code> or <code>APIView</code>. I hope if you know, you might be able to help me understand what's going on here.</p>
  
  <hr>