Нет вывода в serializermethodfield()

Я определил поле serializermethod. Моя проблема в отображении вывода. Когда этот метод существует, поле изображения для меня пустое. Но если я удалю это поле serializermethodfield, то изображение будет выводиться правильно.

Серилизатор:

class ArticleSerializer(serializers.ModelSerializer):
    user = serializers.StringRelatedField(read_only=True)
    image=serializers.SerializerMethodField()
    class Meta:
        model=Article
        fields="__all__"
        validators=[Checktitle()]
 

    def get_image (self , obj ):
        request=self.context.get("request")
        if obj.image:
            image_url=obj.image.url
            return request.build_absolute_uri(image_url)
        return None

view:

class ArticleListview(APIView):
    def get(self,request):
        query_set=Article.objects.all()
        ser = ArticleSerializer(instance=query_set,many=True,context={'request':request})
        print(request)
        return Response(data=ser.data)

Я хотел изменить изображение url. Но при определении этого метода изображение вообще не сохраняется.

Если вы пытаетесь изменить URL-адрес изображения модели статьи, вы можете переопределить метод представления.

class ArticleSerializer(serializers.ModelSerializer):
    user = serializers.StringRelatedField(read_only=True)
    class Meta:
        model=Article
        fields="__all__"
        validators=[Checktitle()]
        
   def to_representation(self, instance):
        resp = super().to_representation(instance)
        request=self.context.get("request")
        if instance.image:
            image_url=instance.image.url
            resp['image'] = request.build_absolute_uri(image_url)
    return resp 
Вернуться на верх