使用Django Rest Framework返回当前用户

马克西姆

我目前正在使用Django开发API。

但是,我想创建一个视图,该视图返回具有以下端点的当前User :/users/current/

为此,我创建了一个列表视图,并过滤了发出请求的用户的查询集。可以,但是结果是列表,而不是单个对象。结合分页,与其他端点相比,结果看起来过于复杂和不一致。

我也尝试创建详细视图并过滤查询集,但DRF抱怨我没有提供pk或slug。

你有什么主意吗?

汤姆·克里斯蒂(Tom Christie):

使用类似的方法,最好脱离常规视图并自己编写视图。

@api_view(['GET'])
def current_user(request):
    serializer = UserSerializer(request.user)
    return Response(serializer.data)

您也可以像这样使用基于类的视图来做同样的事情。

class CurrentUserView(APIView):
    def get(self, request):
        serializer = UserSerializer(request.user)
        return Response(serializer.data)

当然,也没有要求使用序列化程序,也可以从用户实例中提取所需的字段。

@api_view(['GET'])
def current_user(request):
    user = request.user
    return Response({
        'username': user.username,
        'email': user.email,
        ...
    })

希望能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Django REST Framework返回生成的文件下载?

使用Django REST Framework从多个模型返回结果

使用Django REST Framework从多个模型返回结果

使用Django Rest Framework返回当前用户

使用HttpOnly Cookie的django-rest-framework

如何在Django Rest Framework中将当前用户设置为用户字段?

Django REST Framework(DRF):将当前用户ID设置为字段值

使用django-rest-framework使用APITestCase

从django-rest-framework返回CSV格式?

如何使用Django Rest Framework更新用户信息?

使用Django Rest Framework的ListSerializer批量创建

Django Rest Framework返回dict而不是OrderedDicts

使用Django Rest框架进行用户注册

Django Rest Framework用户特定

我如何与当前用户保存帖子而不在Django Rest Framework中查看端点中的所有用户列表

使用Django Rest Framework简单JWT TokenRefresh返回用户名和ID

Django Rest Framework返回单个值

Django Rest Framework返回空JSON

Django Rest Framework-注册后返回用户ID和令牌

在 django rest 框架中获取当前用户

Django Rest API:使用令牌身份验证将当前用户添加到用户字段

Django REST Framework - 使用信号扩展用户模型的问题

请求当前用户 API 令牌 Django REST Framework

Django Rest Framework - 测试 client.login 不登录用户,返回匿名用户

Django Rest Framework:如何使用OperationHolderMixin?

我应该如何在 Django Rest Framework API 中返回用户名而不是 id?

Django REST框架TokenAuthentication返回匿名用户

如何从用户 Django Rest Framework 接收数据

如何在 Django Rest Framework 序列化程序中获取当前用户 ID