Django Rest Framework を使用して、Rest API で新しいモデルを作成しようとしています。
これは私のシリアライザです:
class FooSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Foo
これは私のview.pyです
@api_view(['POST', 'GET','DELETE','OPTIONS'])
def foos(request):
"""
API endpoint to create, delete and get foos
"""
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
model = Foo
serializer_class = FooSerializer
if request.method == "POST":
data = JSONParser().parse(request)
serializer = FooSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JSONResponse(serializer.data, status=201)
else:
return JSONResponse(serializer.errors, status=400)
return Response(serializer.data)
次に、私のバックボーン ビューで:
foo = new Foo
name:'Bla di bla di'
foo.save()
OPTIONS が失敗することを除いて注意が必要です。POST はありません。
OPTIONS http://127.0.0.1:8080/api/foo/
何をすべきかわかりません。投稿の contentType:"application/json" の部分を省略しても、これは起こりません (手動投稿を行う場合)
私の端末ではCURLで動作します。
私のクロムインスペクター>ネットワークで、これを取得します:
Request URL:http://127.0.0.1:8080/api/foo/
Request Headersview source
Access-Control-Request-Headers:accept, origin, authorization, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Origin:http://localhost:8000
Pragma:no-cache
Request、および Response は空です。
編集
Rest APi を使用してサーバーをオフにすると、まったく同じことが起こります。これは、サーバーとは何の関係もないことを教えてくれます。AJAXのものでなければなりません。
私は完全に混乱しています:-(