ピストンを使用してDjangoにRESTサポートを提供しようとしています。 提供されたドキュメントに従ってハンドラを実装しました。 問題は、自分のリソースを「読み込み」、「削除」できますが、「作成」や「更新」できないことです。 関連するAPIをヒットするたびに、400の不正なリクエストエラーが発生します。django-pistonを使用中に400の不正リクエストエラーが発生する
私は、この一般的に利用可能なコードスニペットを使用することによってCSRFのリソースクラスを拡張してきた:
class CsrfExemptResource(Resource):
"""A Custom Resource that is csrf exempt"""
def __init__(self, handler, authentication=None):
super(CsrfExemptResource, self).__init__(handler, authentication)
self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True)
私のクラス(コードスニペット)は次のようになります。
user_resource = CsrfExemptResource(User)
class User(BaseHandler):
allowed_methods = ('GET', 'POST', 'PUT', 'DELETE')
@require_extended
def create(self, request):
email = request.GET['email']
password = request.GET['password']
phoneNumber = request.GET['phoneNumber']
firstName = request.GET['firstName']
lastName = request.GET['lastName']
self.createNewUser(self, email,password,phoneNumber,firstName,lastName)
return rc.CREATED
私はどのようにすることができます教えてください私は、POST操作を使用して動作するcreateメソッドを取得しますか?
さて、リソースクラスの拡張子を使用する代わりに、設定ファイルから "django.middleware.csrf.CsrfViewMiddleware"をコメントアウトしました。 – Cheezo
"作成"または "更新"に対応する "PUT"または "POST" HTTP操作をどのように試みていますか?このクライアントサイドのコードが正しい、有効なHTTPリクエストを作成していることをどのように知っていますか? –
POSTの場合、私は明示的にPOST要求を作成することができるrestclient WizTools.orgを使用します。atleast要求を通過していると確信しています。 – Cheezo