在创建令牌时,我遇到了上述错误,请看代码:
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)
})
我在这里做错了什么
AuthToken
进行序列化(或传递该令牌的某个属性,该属性可以转换为JSON(例如str
、int
等)。AuthToken
本身是不可序列化的,至少不是没有额外逻辑的情况下。 - Willem Van Onsemdjango-rest-knox
的变化。我有一个使用您在帖子中提供的代码的django-rest-know v 3.6.0
项目。我刚开始一个新项目(使用版本4.0.1),我不得不将[1]
添加到令牌序列化中。 - HenryM