代码之家  ›  专栏  ›  技术社区  ›  Shibu Addi

Django rest framework modelviewsets自定义响应

  •  0
  • Shibu Addi  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  7
  •   rtindru    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
    

    这是的原始代码 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
    

    你可以在 UpdateModelMixin 在里面 DRF