2017-09-04 15 views
1

私は以下のようにdjango 1.8 rest apiを使用しています。django rest framework - ボディにアクセスできない

@api_view(['GET', 'POST']) 
@authentication_classes((TokenAuthentication, SessionAuthentication, BasicAuthentication)) 
@permission_classes((IsAuthenticated,)) 
@staff_member_required 
def api(request): 
    print request.data 

これは、すべてのパラメータを文字列として取得するため、数値とブール値を手動で変換する必要があるという問題があります。

私が使用してみました:

print json.loads(request.body) 

どうやら残りのフレームワークは、このエラーが発生したデータ・ストリームからの読み込みジャンゴ:

Error: RawPostDataException: You cannot access body after reading from request's data stream 

私はまた、ドキュメントので

json.loads(request.stream.body) 

を試してみましたストリームはうまくいくはずだ。

リクエスト投稿データを適切なタイプで取得する方法はありますか?

私はJSON.stringifyでデータを送信するためにajaxを使用しています。

答えて

1

DRFにserializersを使用します。モデルインスタンスをJSONに変換できるネイティブPythonデータ型に変換することができます(逆も同様です)。これらのJSON文字列を複合タイプに変換するデシリアライズもできます。

シリアライザの詳細を読むhere

関連する問題