2016-04-06 47 views
0

我有一个简单视图,该目录中的django静止框架活动:在ListAPIView中返回什么http代码?

class EventListView(generics.ListAPIView): 
    serializer_class = EventListSerializer 

    def get_queryset(self): 
     user_position = self.request.query_params.get('position', '') 
     if not user_position or not re.match(r'^-?\d+\.\d+,-?\d+\.\d+$', user_position): 
      raise APIException('Position is absent or invalid') 

     return Event.objects.filter(...) 

对于这种观点,我需要验证该position参数存在和阱形成的。如果不是,我想返回一个合适的HTTP错误代码。

正如我现在所做的那样,如果发生错误,API将返回500错误代码,我认为这是错误的。

是否有更具体的HTTP错误代码,我应该返回?我认为状态代码400可能是合适的,但是我怎么能在我的观点中明确地返回该代码?

谢谢!

回答

0

上面的代码可以工作,如果你是提高DRF的ValidationError。 DRF ValidationError导致视图返回HTTP_400_BAD_REQUEST状态。

可能是导致500的APIException。如果要使用API​​Exception,请确保它对DRF的ValidationError进行子类别分类。