使用Django Simple JWT获取UserProfile时遇数据格式错误求助
解决"Invalid data. Expected a dictionary, but got User."错误
你的问题出在序列化器的使用方式上:
data参数是DRF序列化器用于反序列化的(比如接收前端提交的表单数据来创建/更新模型),而你现在要做的是序列化已存在的User模型实例,不需要传这个参数。- 另外,序列化现有实例时不需要调用
is_valid(),这个方法只在处理前端输入数据时有用。
修改后的视图代码如下:
@api_view(["GET"]) @renderer_classes([UserRenderer]) @permission_classes([IsAuthenticated]) def user_profile(request): print("DATA", request.user) # 直接传入User实例,无需data参数 serializer = UserProfileSerializer(request.user) # 序列化完成直接返回数据 return Response({"data":serializer.data}, status=status.HTTP_200_OK)
这么改之后,就能正常序列化当前登录用户的信息并返回了。
内容的提问来源于stack exchange,提问作者Vaibhav Kakade
相关产品推荐
相关产品推荐

