Django rest framework return processed image url saved
Изображение было получено и обработано фреймворком Django rest и сохранено в postgres. Я могу просмотреть файл, сохраненный локально, как я могу отправить URL местоположения изображения обратно?
Вот мои взгляды
class ImageViewSet(viewsets.ModelViewSet):
queryset = Image.objects.all().order_by('-uploaded')
serializer_class = ImageSerializer
@api_view(['POST'])
def analyze_image(request):
image_uploaded = request.data['picture']
....#some processing
img_model = Image()
new_image = BytesIO()
processed_image.save(new_image , format='PNG')
img_model.analyzed_picture.save("fileName", content=ContentFile(new_image.getvalue()), save=False)
# Above image is saved succesfully and I can view it locally
return Response(img_model.data, status=status.HTTP_200_OK)
Я получаю
AttributeError: объект 'Image' не имеет атрибута 'data'
Как исправить оператор return, чтобы он возвращал сохраненную информацию об объекте?
Вы можете это сделать,
class ImageSerialiser(serializers.ModelSerializer):
image_url = serializers.SerializerMethodField('get_image_url')
class Meta:
model = Picture
fields = ('field', 'image', 'image_url')
def get_image_url(self, obj):
return obj.image.url