utf8' codec can't decode byte 0x89 in position 15: invalid start byte
<p>This is a view for my project in which I am trying to upload images from my local system to s3 using boto. </p>

<pre><code>class ImageList(generics.ListCreateAPIView):
        queryset = Image.objects.all()
        serializer_class = ImageSerializer

        def post(self , request , format = None):
            # import ipdb; ipdb.set_trace()
            serializer = ImageSerializer(data = request.data)
            if serializer.is_valid():
                serializer.save()
                print request.data
                return Response({'received data' : request.data})
            return Response(serializer.errors , status = status.HTTP_400_BAD_REQUEST)

class ImageDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Image.objects.all()
    serializer_class = ImageSerializer
</code></pre>

<p>It works fine for django admin but generates error while I try to upload it using Django Rest Framework html form. I have overridden the post method in generic class based view. The error that gets generated is :</p>

<pre><code>UnicodeDecodeError at /image/
'utf8' codec can't decode byte 0xff in position 15: invalid start byte
Request Method: POST
Request URL:    http://127.0.0.1:8000/image/
Django Version: 1.9
Exception Type: UnicodeDecodeError
Exception Value:    
'utf8' codec can't decode byte 0xff in position 15: invalid start byte
Exception Location: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py in encode, line 210
Python Executable:  /usr/bin/python
Python Version: 2.7.10
Unicode error hint

The string that could not be encoded/decoded was: "����\u
</code></pre>

<p>I have tried almost everything available on stack overflow but nothing worked for me. I didn't copy the code from somewhere so there would be no strange characters.</p>

<p>For reference this is the  <strong>models.py</strong> file: </p>

<pre><code>class Image(models.Model):
    image_meta = models.ForeignKey('Image_Meta',on_delete=models.CASCADE,)
    image = models.ImageField(upload_to='images-data')
    # image = models.URLField(max_length = 500)
    order = models.IntegerField()
    version = models.CharField(max_length=10)

    def __unicode__(self):
            return (self.image)
</code></pre>

<p>See this for more detail : <a href="https://i.stack.imgur.com/ZIVha.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZIVha.png" alt="enter image description here"></a></p>