Как настроить ответ api из функции retrieve в mixin

Я новичок в Django, я написал API представление на основе класса с mixin. функциональность проста, т.е. получить данные заданного id. я вставляю код ниже.

class GenericAPi(generics.GenericAPIView,mixins.ListModelMixin,mixins.RetrieveModelMixin):
serializer_class=ArticleSerializer
queryset=Article.objects.all()
lookup_field="id"
def get(self,request,id):
    if id:
        data=self.retrieve(request)
        return Response({"data":data.data,"status":data.status_code})
    else:
        return self.list(request)

вот ответ, который я получаю

{"id":5, "title": "loream", "author": "me"}

Затем я перехожу к функции retrieve в mixin, чтобы внести некоторые изменения в ответ.

 def retrieve(self, request, *args, **kwargs):
    print('Retrieving')
    instance = self.get_object()
    serializer = self.get_serializer(instance)
    return Response({"result":serializer.data})

и затем я делаю вызов API, но все равно получаю тот же ответ. Как настроить ответ в самой функции retrieve.

Мне нужен ответ, подобный этому.

<

Я думаю, что вам не нужно настраивать функцию retrieve в RetrieveModelMixin.

class GenericAPi(generics.GenericAPIView,mixins.ListModelMixin,mixins.RetrieveModelMixin):
    serializer_class=ArticleSerializer
    queryset=Article.objects.all()
    lookup_field="id"
    def get(self, request, id):
        if id:
            article = self.get_object()
            return Response({"result": ArticleSerializer(article).data})
        return 
            return self.list(request, *args, **kwargs)
Вернуться на верх