Django rest framework возвращает url изображения
Я пытаюсь загрузить изображение в API и получить URL изображения обратно в ответ:
Вот мой serializers.py
from ..models import EditedImage
from rest_framework import serializers
class EditedImage(serializers.ModelSerializer):
class Meta:
model = EditedImage
fields = '__all__'
Вот мой views.py
class ImageViewSet(viewsets.ModelViewSet):
queryset = EditedImage.objects.all()
serializer_class = ImageSerializer
@api_view(["POST"])
def manipulate_image(request):
greenChannel, blueChannel= manip(request.data["picture"])
image = edited_image.objects.create(green=ContentFile(greenChannel.tobytes()),
blue=ContentFile(blueChannel.tobytes()),
)
return Response(data=image, status=status.HTTP_201_CREATED)
TypeError: Объект типа Image не является JSON сериализуемым
Моя модель:
# Create your models here.
class EditedImage(models.Model):
green= models.ImageField(upload_to="green_image", blank=True)
blue= models.ImageField(upload_to="blue_image", blank=True)
serializers.py
from ..models import EditedImage
from rest_framework import serializers
class EditedImage(serializers.ModelSerializer):
green= serializers.SerializerMethodField('get_green_url')
blue= serializers.SerializerMethodField('get_blue_url')
class Meta:
model = EditedImage
fields = '__all__'
def get_green_url(self, obj):
request = self.context.get("request")
if (obj.green):
return request.build_absolute_uri(obj.green.url)
else:
return (obj.green)
def get_blue_url(self, obj):
request = self.context.get("request")
if (obj.blue):
return request.build_absolute_uri(obj.blue.url)
else:
return (obj.blue)