Django Rest Framework-当获取类型为模型不可JSON序列化的对象时,如何在响应中返回模型的所有信息



我试图在用户登录后返回一个包含更多信息的对象。

class CustomAuthToken(ObtainAuthToken):
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)
player = Player.objects.get(id=user.pk)
return Response({
'token': token.key,
'user_id': user.pk,
'email': user.email,
'full_user_info': player, # Object of type Player is not JSON serializable
})

我尝试了dict(player),但错误读取TypeError: 'Player' object is not iterable

创建播放器模型序列化程序

class PlayerSerializer(serializers.ModelSerializer):
class Meta:
model = Player
fields = "__all__"

然后在您的响应dict:中使用序列化程序

{ 
# other fields
"full_user_info": PlayerSerializer(data=Player)
}

最新更新