小编unk*_*own的帖子

使用 django Rest 框架登录

错误看起来就像这样 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)

django django-models django-rest-framework

3
推荐指数
1
解决办法
6591
查看次数