Django RESTフレームワークの新機能です。誰かが私が405 Django RESTフレームワークの "Method POSTは許可されていません"
405 Method Not Allowed
{"detail":"Method \"POST\" not allowed."}
私のコードは次のようさに「/ API /インデックス/」POSTリクエストを行う場合、私は、このようなエラーを取得する理由を説明することができます:
# views.py
class ApiIndexView(APIView):
permission_classes = (permissions.AllowAny,)
def post(self, request, format=None):
return Response("ok")
# urls.py
urlpatterns = [
url(r'^api/index/$', views.ApiIndexView.as_view()),
]
# settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.DjangoModelPermissions',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
しかし、私は私のパターンに<pk>
を追加した場合すべて正常に動作します。
# views.py
class ApiIndexView(APIView):
permission_classes = (permissions.AllowAny,)
def post(self, request, pk, format=None):
return Response("ok")
# urls.py
urlpatterns = [
url(r'^api/index/(?P<pk>\d+)/$', views.ApiIndexView.as_view()),
]
私は完全に混乱しています。 <pk>
を使用する必要があるのはなぜですか。また、このパラメータをURLパターンで使用しないようにする方法はありますか?
Strange。投稿したコードは私のために働いています。これは完全なコードですか? – ilse2005
正確ではないが、私は重要な部分を見つけた。私が間違っている可能性のある考え? – Fomalhaut
さて、私はあなたの質問からコードをコピーし、それは動作します。他にもいくつかの問題があります。どのDRFバージョンを使用していますか? – ilse2005