错误看起来就像这样 KeyError: 'user' 而我每次显示此错误消息时都尝试登录。我已经安装了 Django Rest Framework。使用 Rest Framework 登录的最佳方法是什么?
我的看法
class LoginAPIView(APIView):
def post(self, request):
serializer = LoginSerializers(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
login(request, user)
token, created = Token.objects.get_or_create(user=user)
return Response({"status": status.HTTP_200_OK, "Token": token.key})
Run Code Online (Sandbox Code Playgroud)
我的序列化器
class LoginSerializers(serializers.Serializer):
class Meta:
model = User
email = serializers.CharField(max_length=255)
password = serializers.CharField(max_length=128, write_only=True)
def validate(self, data):
email = data.get('email', None)
password = data.get('password', None)
if email and password:
user = authenticate(username=email, password=password)
if user:
data['user'] = user
data['user'] = user
return data
Run Code Online (Sandbox Code Playgroud)