2017-07-20 14 views
3

djangoとdjango restフレームワークを使用し、厳密にフレーム作業コードを使用している間。djangoとdjango restフレームワークを使用している間の例外処理

例、モデルにシリアライザに設定ビューに接続されたルータを使用して

私が意味することは、カスタムコードはありません.Django Restフレームワークコードにフィードするために必要なもの以外に、例外は必要ありませんか?

私が見たすべてのコード例では、まだtry catchブロックが表示されていないため、尋ねます。

は、このようないくつかの要求に誤ったデータ型または無効な主キーとしてデータが正しくない形式であるか、正しい値が含まれていない場合にスローされるエラーのいくつかの種類があるだろう、

答えて

1

一般的にお願いします。 Django RESTフレームワークのシリアライザは、ValidationErrorを呼び出し、エラーの追跡をserializer.Serializer._errorsにすることで、この種のエラーを処理します。ユーザがHTTP DELETEリクエストを送信しようとしたとき

{"detail": "Method 'DELETE' not allowed."} 

:DRFフレームワークは、バック例に適した形式でユーザにこれらのエラーを示します。 DRFがさまざまな例外を処理する方法の詳細については、hereを参照してください。

ビュー、シリアライザ、モデルなどの中で自分自身を書いているコードについては、あなたが試してみるか、例外として扱うことができますが、必要と思われます。シリアライザでは、raise ValidationError(yourError)を使用し、ビューではreturn Response(yourError, status=400)を使用することがあります。

希望しました。

関連する問題