Python Django rest framework ModelViewSet自定义响应
我对django rest框架非常陌生,我必须自定义Python Django rest framework ModelViewSet自定义响应,python,django-rest-framework,Python,Django Rest Framework,我对django rest框架非常陌生,我必须自定义ModelViewSet并序列化以在调用put方法时返回仅响应的成功消息,而不是queryset。您可以覆盖ModelViewSet响应来执行此操作。我假设这只是在PUT请求的情况下。然后你可以这样做: class MyModelViewSet(ModelViewSet): def update(self, request, *args, **kwargs): super(MyModelViewSet, self).up
ModelViewSet
并序列化以在调用put方法时返回仅响应的成功消息,而不是queryset
。您可以覆盖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更新的原始代码:
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
您可以在
DRF
中的UpdateModelMixin
中找到它。您可以覆盖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更新的原始代码:
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
您可以在
DRF
中的UpdateModelMixin
中找到它,谢谢。。。正是我想要的。不客气;如果您的问题已解决,请接受答案谢谢。。。正是我想要的。不客气;如果您的问题得到解决,请接受答案