2016-04-06 1 views
0

:このビューの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かもしれません。もしあなたがAPIExceptionを使用したいのであれば、それがDRFからのValidationErrorをサブクラス化していることを確認してください。