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