Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过django rest framework获取带有令牌的用户id?_Django_Python 3.x_Django Rest Framework_Authorization_Token - Fatal编程技术网

无法通过django rest framework获取带有令牌的用户id?

无法通过django rest framework获取带有令牌的用户id?,django,python-3.x,django-rest-framework,authorization,token,Django,Python 3.x,Django Rest Framework,Authorization,Token,我使用的是django django=2.1.7和rest框架djangorestframework=3.9.2这是我的登录url path('rest-auth/', include('rest_auth.urls')), 身份验证后,我得到了令牌,但我也需要用户id。我试图用以下代码覆盖rest_framework.authtoken.views.py文件的post方法 def post(self, request, *args, **kwargs): serial

我使用的是django django=2.1.7和rest框架djangorestframework=3.9.2这是我的登录url

path('rest-auth/', include('rest_auth.urls')),
身份验证后,我得到了令牌,但我也需要用户id。我试图用以下代码覆盖rest_framework.authtoken.views.py文件的post方法

    def post(self, request, *args, **kwargs):
        serializer = self.serializer_class(data=request.data,
                                           context={'request': request})
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        context = {
            'token': token.key,
            'user': user.id
        }
        return Response({'context': context})
请帮助我了解如何使用令牌获取用户id。这是我的大学项目

注意:我找到了许多关于堆栈溢出的答案,但没有一个是有用的。使用此选项可以使用身份验证。在这里您可以看到如何进行身份验证,但是,如果您希望在默认情况下对所有视图使用令牌身份验证,则应将其添加到
settings.py
文件中,如下所示:

REST_FRAMEWORK = {
   'DEFAULT_AUTHENTICATION_CLASSES': (
       ...
       'rest_framework.authentication.TokenAuthentication',
       ...
    ),
}
或者,您应该手动将其添加到需要令牌身份验证的视图中。在这个视图中,您可以通过
request.user
self.request.user
获得经过身份验证的用户

from rest_framework.authentication import TokenAuthentication

class ViewSetName(ViewSet):
    authentication_classes = [TokenAuthentication]

这是另一个Python包。为什么不提供完整的上下文?不完整的信息,不完整的答案。