gpt4 book ai didi

Django REST框架: Validate before a delete

转载 作者:行者123 更新时间:2023-12-01 23:48:34 25 4
gpt4 key购买 nike

我想在删除对象之前运行验证,以防止在某些情况下删除并作为验证错误返回。我怎么做?我目前所拥有的似乎不正确:

class CallDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = XCall.objects.all()
serializer_class = CallSerializer
...

def pre_delete(self, obj):
if obj.survey:
raise serializers.ValidationError("Too late to delete")

最佳答案

我找到的解决方案是重写 api 上的 destroy 方法。

class CallDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = XCall.objects.all()
serializer_class = CallSerializer
...

def destroy(self, request, *args, **kwargs):
obj = self.get_object()
if obj.survey:
return Response(data={'message': "Too late to delete"},
status=status.HTTP_400_BAD_REQUEST)
self.perform_destroy(obj)
return Response(status=status.HTTP_204_NO_CONTENT)

对我来说,验证 destroy 方法比像 avances123 提到的那样验证对象权限检查更有意义,因为权限应该只检查权限内容,并且不会返回任何消息与验证相关。

希望有帮助;)

关于Django REST框架: Validate before a delete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com