'AuthToken' 类型的对象不可 JSON 序列化
Object of type 'AuthToken' is not JSON serializable
创建令牌时出现上述错误,代码如下:
from rest_framework import generics, permissions
from rest_framework.response import Response
from knox.models import AuthToken
from .serializers import UserSerializer, RegisterSerializer
class RegisterAPI(generics.GenericAPIView):
serializer_class = RegisterSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.save()
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": AuthToken.objects.create(user)
})
我做错了什么
Token.objects.create returns 一个元组(实例,令牌)。所以为了获得令牌使用索引 1
"token": AuthToken.objects.create(user)[1]
更好的方法是在 python
中使用此方法
_, token = AuthToken.objects.create(user)
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": token
})
发生此特定错误是因为 Token.objects.create returns 一个元组(实例、令牌)。只需使用第二个位置 [1] 而不是 former
"token": AuthToken.objects.create(user)[1]
创建令牌时出现上述错误,代码如下:
from rest_framework import generics, permissions
from rest_framework.response import Response
from knox.models import AuthToken
from .serializers import UserSerializer, RegisterSerializer
class RegisterAPI(generics.GenericAPIView):
serializer_class = RegisterSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.save()
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": AuthToken.objects.create(user)
})
我做错了什么
Token.objects.create returns 一个元组(实例,令牌)。所以为了获得令牌使用索引 1
"token": AuthToken.objects.create(user)[1]
更好的方法是在 python
中使用此方法_, token = AuthToken.objects.create(user)
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": token
})
发生此特定错误是因为 Token.objects.create returns 一个元组(实例、令牌)。只需使用第二个位置 [1] 而不是 former
"token": AuthToken.objects.create(user)[1]