"方法"开机自检"不允许。"姜戈休息



我是Django Rest框架的新手。我有一个API可以为每个用户获得相应的令牌。定义要访问令牌的方法是

class ObtainAuthToken(APIView):
def post(self, request):
    user = authenticate(
        username=request.data['username'], password=request.data['password'])
    if user:
        token, created = Token.objects.get_or_create(user=user)
        return Response({'token': token.key, 'user': UserSerializer(user).data})
    return Response('Invalid username or password', status=status.HTTP_400_BAD_REQUEST)

和在urls.py中我有

url(r'^login/$',ObtainAuthToken, name='login')

但是,在登录用户时,我将响应作为

{
"detail": "Method "POST" not allowed."
}

我在哪里错了?

首先 - 我看到您使用了django-rest-auth标签。您实际上正在使用REST AUTH吗?如果不是 - 您绝对应该考虑这样做,因为它可以开箱即用。

关于您的问题,您忘了在URL conf中的ObtainAuthToken上致电as_view()。像这样更改它,并告诉我它是否有效:

url(r'^login/$', ObtainAuthToken.as_view(), name='login')

您的代码中的凹痕错误。帖子方法需要在ObtainAuthToken(APIView)类内部。现在定义为独立函数。

最新更新