0
IOSアプリケーション用のHiScoreモジュールを作成しようとしています。Django RestフレームワークでPOSTを実行するビューセットを返す "405 - メソッドPOSTが許可されていません"
私はPOST(おそらくPUTと同じ問題がありますが、わからない部分)に詰まっています。私は郵便配達員に405を手に入れています。 一覧と詳細が素晴らしい働いているので、モデル、serialisersまたはビューに問題、私はどこか
ビュー
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class GameViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameSerializer
class GameTypeViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameTypeSerializer
class GameLevelViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameLevelSerializer
class HiScoreViewSet(viewsets.ModelViewSet):
permission_classes = [AllowAny,]
queryset = HiScore.objects.all()
serializer_class = HiScoreSerializer
serialisers.py
class HiScoreSerializer(ModelSerializer):
image = SerializerMethodField()
class Meta:
model = HiScore
fields = ("user", "game", "gameType", "gameLevel", "points", "image")
def get_image(self, obj):
try:
profile = UserProfile.objects.get(user=obj.user)
return profile.image.url
except:
return None
追加する権限を推測しているだけで何かがありません
私はあなたがいると思うurls.py
router = DefaultRouter()
router.register(prefix='hiscores', viewset=HiScoreViewSet)
urlpatterns = router.urls
をしかし、あなたの 'HiScoreViewSet'は例と同じではありません。あなたはデコレータ '@detail_route(methods = ['post'])を使用していません。 – zengr
私の友人は申し訳ありませんが、質問をする前に記事を読んだことがあります。 RESTフレームワークに含まれているデフォルトのルータは、以下に示すように、標準のcreate/retrieve/update/destroyスタイル操作セットのルートを提供します。つまり、CRUDメソッドをオーバーライドしないと自動的にそれらを取得します。あなたがブラウザに行ってURLの最後にcreateを書くと、あなたは作成URLを取得していることがわかります...もう一度、権限の問題または認証の問題です。ありがとう – Erez
それは間違いなく認証の問題ではありません、そうでなければあなたは '401 UNAUTHORIZED'を得ているはずです。 – zengr