Как конвертировать ImageString в Image Django Rest Framework? - PullRequest
0 голосов
/ 30 января 2019

Я получаю свою строку изображения из Android с помощью Asynchttp, и я хочу преобразовать эту строку изображения в изображение в Django Rest Framework..Просто преобразовать его, чтобы не сохранять в ImageField

* Model.py

class Food(models.Model):
label=models.TextField(max_length=200)
link = models.FileField(null=False, blank=False)
Image = models.TextField(link, null=True)

 class Android(models.Model):
label=models.TextField(max_length=200)
imagestring=models.TextField(null=True,blank=True)  //convert this to Image

* Serializer.py

class AndroidSerializers(serializers.HyperlinkedModelSerializer):   
class Meta:
    model = Android
    fields = ('label', 'imagestring')



 class FoodSerializers(serializers.HyperlinkedModelSerializer):
 class Meta:
    model=Food
    fields=('url','label','Image','link')

* Views.py

class FoodViewSet(viewsets.ModelViewSet):
queryset = Food.objects.all()
serializer_class =FoodSerializers

class Androids(viewsets.ModelViewSet):
queryset =Android.objects.all()
serializer_class = AndroidSerializers()

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать библиотеку PIL для работы со строками, изображениями и наоборот.

from PIL import Image
from io import BytesIO
import base64
im = Image.open(BytesIO(base64.b64decode(data)))

Чтобы использовать ее в сериализаторе, создайте настраиваемое поле

class ImageSerializerField(serializers.Field):
    def to_representation(self, value):
        return value # convert it the way you want to see in json
    def to_internal_value(self, data):
        im = Image.open(BytesIO(base64.b64decode(data)))
        return im
class AndroidSerializers(serializers.HyperlinkedModelSerializer):
    imagestring =  ImageSerializerField() 

    class Meta:
        model = Android
        fields = ('label', 'imagestring')

Ссылка: https://www.django -rest-framework.org / api-guide / fields / # custom-fields

https://pillow.readthedocs.io/en/stable/
https://github.com/python-pillow/Pillow

...