2016-04-06 46 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進行子類別分類。