首页 > 解决方案 > 在Django rest框架中删除对象后不显示成功消息

问题描述

我有一个DestroyAPIView,我在其中使用perform_delete函数删除一个实例。但是,我想发送一条状态为 200 的成功消息。我试过了,但是在邮递员中,我对 204 状态感到空白。我怎样才能做到这一点?

我的观点:

class UpdateOrderView(UpdateAPIView,DestroyAPIView):
    permission_classes = [AllowAny]
    #queryset = Order.objects.prefetch_related('order_items').all()
    #value = self.kwargs['pk']
    queryset = Order.objects.all()
    print(queryset)
    serializer_class = OrderUpdateSerializer

    def perform_destroy(self, instance):
        if instance.delete():
            return Response({
                "message":"Order deleted successfully"
            },
            status=status.HTTP_200_OK)
        else:
            pass

实例已删除,我检查了数据库,但没有收到成功消息。

标签: pythondjangoapidjango-rest-frameworkpostman

解决方案


您可以改写destroy方法。

class UpdateOrderView(UpdateAPIView,DestroyAPIView):
    permission_classes = [AllowAny]
    queryset = Order.objects.all()
    serializer_class = OrderUpdateSerializer

    def destroy(self, request, *args, **kwargs):
        instance = self.get_object()
        self.perform_destroy(instance)
        return Response({
            "message":"Order deleted successfully"
        },
        status=status.HTTP_200_OK)

    def perform_destroy(self, instance):
        instance.delete()

推荐阅读