1

私のリソースコードは

class MessageResource(ModelResource):
    class Meta:
        queryset = Message.objects.all()
        resource_name = "message"
        always_return_data = True
        authentication = ApiKeyAuthentication()
        authorization = Authorization()
    def determine_format(self, request):
        return "application/json"

認証情報なしでメッセージ リソースを取得すると、応答は次のようになります。

401 UNAUTHORIZED
"Content-Type" = "text/html; charset=utf-8";
Date = "Mon, 19 Nov 2012 15:36:28 GMT";
Server = "WSGIServer/0.1 Python/2.7.2";

html の代わりに、JSON 応答を取得したいと考えています。実はどのような場合でもtastypieがJSON応答のみを返すように指定する方法を知りたいですか?

次のような JSON レスポンスを取得したい

{ "code": "401", "message": "Unauthorized" }

それを実装する方法はありますか?

4

2 に答える 2

0

これは有効な HTTP 応答です。JSON 401 応答はどこにも指定されておらず、tastypie がデフォルトのものを思い付く必要はありません。

そのような必要がある場合は、API を適切なミドルウェアでラップするだけです。

更新: ミドルウェアのセットアップ方法

まず、ミドルウェアのドキュメントをよく読んでください。

次に、新しいミドルウェア クラスにメソッドを実装し、ステータス コードprocess_responseに応じて応答で必要なことを行う必要があると思います。

ミドルウェア クラスを に追加することを忘れないでくださいsettings.MIDDLEWARE_CLASSES

于 2012-11-19T16:21:18.053 に答える