当我尝试登录时,错误信息看起来像是这样的 KeyError: 'user'。 我已经安装了Django Rest Framework。使用Rest框架进行登录的最佳方法是什么?
我的视图代码:
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})
我的序列化器
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
validate
中要返回user
? - dirkgrotenuser
是None
,它应该引发错误。除此之外,它应该可以正常工作。如果只有超级用户可以登录,那么你可能需要检查一下如何创建用户。 - dirkgroten