0

私が正確に意味したのは、obj_create() を変更するときに JSON 応答が欲しいということでした。UserSignUpResource(ModelResource) を実装し、obj_create() 内でいくつかの検証を行い、失敗した場合は BadRequest() を発生させます。ただし、これは JSON をスローしません。代わりに String をスローします。

{'error': 184, 'message': 'このユーザー名は既に存在します'} 形式をスローできるかどうか、何か考えはありますか? それとも、obj_create() を変更しないと思いますか? または、代わりに何をすべきですか?

多くの助け、ありがとう。

乾杯、ミッキー

4

2 に答える 2

2

簡単ですが、tastypies http モジュールに小さなヘルパー メソッドを作成しました。

import json

#tastypies HttpResponse classes here...

def create_json_response(data, http_response_class):
    return http_response_class(content=json.dumps(data), content_type="application/json; charset=utf-8")

次に、次のように簡単に言うことができます。

from tastypie.http import HttpNotFound, create_json_response

#choose HttpNotFound, HttpCreated whatever...
raise ImmediateHttpResponse(create_json_response({"error":"resource not found"}, HttpNotFound))
于 2012-10-07T22:03:32.623 に答える
0

リソースから error_response メソッドを使用する必要があります。

何かのようなもの:

    def obj_create(self, bundle, **kwargs):
        # Code that finds Some error
        my_errors = {"error": ["Some error"]}
            raise ImmediateHttpResponse(response=self.error_response(bundle.request, my_errors))

通常、super を呼び出すと、tastypie の検証プロセスでエラーが発生するはずです。例外は自動的にスローされます (エラー ディクショナリが bundle.errors プロパティに保存されます)。

于 2014-12-18T15:01:06.260 に答える