I am trying to upload file with some form data. For testing my api I am using Postman.When I try to POST with file and other fields, I got this error
{
"detail": "JSON parse error - 'utf-8' codec can't decode byte 0xbf in position 10: invalid start byte"
}
Here is my model:
class Music(models.Model):
album = models.ForeignKey(Album, related_name='tracks')
playlist = models.ForeignKey(Playlist, null=True, related_name='tracks')
name = models.CharField(max_length=200, unique=True)
dropbox_id = models.CharField(max_length=500, null=True)
favorite = models.BooleanField(default=False)
created_at = models.DateField(auto_now_add=True)
counter = models.IntegerField(default=0)
serializer:
class MusicSerializer(serializers.ModelSerializer):
file = serializers.FileField(required=True)
class Meta:
model = Music
fields = ('id', 'favorite', 'created_at', 'counter', 'file', 'name', 'album', 'playlist')
and view :
class MusicViewSet(viewsets.ModelViewSet):
queryset = Music.objects.all()
serializer_class = MusicSerializer
def perform_create(self, serializer):
file_obj = self.request.FILES['file']
dbx = dropbox.Dropbox(JSON_DATA['dropbox_access_token'])
res = dbx.files_upload(file_obj, '/', autorename=True, mute=True)
print(res)
serializer.save(dropbox_id='x')