You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:55:19