在我的Django视图中,我调用get_object
方法来查询用户类型的记录。可能存在用户将不获得或为空的示例。我将这个方法调用给其他几个方法,如get
、patch
等。
from rest_framework.generics import GenericAPIView
from django.core.exceptions import ValidationError
class FooViewSet(GenericAPIView):
def get_object(self, pk):
try:
foo = Foo.objects.get(pk=pk)
return foo
except Foo.objects.DoesNotExist:
raise ValidationError('Foo Does Not Exist')
def get(self, request, pk, format=None):
obj = self.get_object(pk)
return Response({})
def patch(self, request, pk, format=None):
obj = self.get_object(pk)
return Response({})
def delete(self, request, pk, format=None):
obj = self.get_object(pk)
return Response({})
我试图捕捉对象是否不存在并抛出ValidationError,但我得到了这个错误:
catching classes that do not inherit from BaseException is not allowed
如果不存在带有URL查询参数的对象(如此实现),如何正确抛出错误?
1条答案
按热度按时间vktxenjb1#
.objects是模型manager,而不是具有该异常的模型类
尝试: