如何在Django REST框架中获取用户?

2024-05-16 19:00:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Django REST框架,我试图让用户在我的基于类的视图中这样做:

class ListPDF(PDFTemplateView):
    """
    Return a PDF 
    """
    permission_classes = (IsAuthenticated,)
    template_name = 'pdf.html'

    def get_context_data(self, **kwargs):
        user = User.objects.get(id=self.request.user.id)

但由于某些原因,我一直得到错误User matching query does not exist。我正在使用rest_framework.authtoken进行身份验证。在

我已经调查过,当我没有通过管理部分登录时,用户是匿名的,即使用户令牌是随请求一起发送的。如何在此视图中获取用户对象?在

**更新

我找到了this answer

^{pr2}$

但是,有没有更简单的方法来获得用户呢?在


Tags: django用户self框架视图restidget
1条回答
网友
1楼 · 发布于 2024-05-16 19:00:52

确保已将令牌身份验证添加到DEFAULT_AUTHENTICATION_CLASSES

# settings.py:

INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework.authtoken',
    ...
]

REST_FRAMEWORK = {
    ...
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
    ...
}

文档:http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication


编辑:我注意到您正在子类化PDFTemplateView。是你自己写的吗?它是从DRF的APIView继承的吗?在

相关问题 更多 >