Django 休息框架模型视图集自定义响应

0 python django-rest-framework

我对 django rest 框架很陌生,我必须自定义modelviewsets和序列化以仅返回响应成功消息,而不是queryset在调用 put 方法时返回。

rti*_*dru 6

您可以覆盖ModelViewSet响应来执行此操作。我假设这只是PUT请求的情况下。然后你可以这样做:

class MyModelViewSet(ModelViewSet):
    def update(self, request, *args, **kwargs):
        super(MyModelViewSet, self).update(request, *args, **kwargs)
        return Response({"status": "Success"})  # Your override
Run Code Online (Sandbox Code Playgroud)

这是原始代码def update

def update(self, request, *args, **kwargs):
    partial = kwargs.pop('partial', False)
    instance = self.get_object()
    serializer = self.get_serializer(instance, data=request.data, partial=partial)
    serializer.is_valid(raise_exception=True)
    self.perform_update(serializer)

    if getattr(instance, '_prefetched_objects_cache', None):
        # If 'prefetch_related' has been applied to a queryset, we need to
        # forcibly invalidate the prefetch cache on the instance.
        instance._prefetched_objects_cache = {}

    return Response(serializer.data)  # This is the original code
Run Code Online (Sandbox Code Playgroud)

您可以在找到它UpdateModelMixinDRF