0
我正在嘗試爲我的IOS應用程序創建HiScore模塊。使用viewsets在Django Rest框架上執行POST返回「405 - 不允許的方法POST」
我卡在POST(可能會有與PUT相同的問題,但不知道)部分,我在郵遞員405。 列表和詳細信息正在極大,所以不存在問題的機型,串行器或意見,只是一些我與添加權限猜測某處
意見
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的末尾創建,你會看到你正在得到一個創建網址......這是一個權限問題或認證問題,而不是一個視圖問題,因爲我明白了..謝謝 – Erez
它絕對不是一個身份驗證問題,否則你應該得到'401 UNAUTHORIZED'。 – zengr