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

Вернуться на верх