我正在为我的 rest api 设置一个 Django knox-rest 框架。我正在使用 Postman 测试登录,执行请求后,我的 API 返回 500 错误以及堆栈转储。返回给 Postman 的转储向我显示以下错误:
AttributeError at /users/api/auth/login
'LoginSerializer' object has no attribute 'validated_data'
我的 api.py 文件中的一个片段:
class LoginAPI(generics.GenericAPIView):
serializer_class = LoginSerializer
permission_classes = ()
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.valiated_data
_, token = AuthToken.objects.create(user)
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": token
})
我的 serializers.py 文件中的片段:
class LoginSerializer(serializers.Serializer):
username = serializers.CharField()
password = serializers.CharField()
def validate(self, data):
user = authenticate(**data)
if user and user.is_active:
return user
raise serializers.ValidationError("Incorrect Credentials")
服务器干净启动,除了 Post 请求和 500 错误之外,没有错误记录到控制台。我必须去邮递员查看带有上述错误的转储。
我已经尝试了几乎所有我能想到或发现尝试但没有弄明白的东西。所以任何帮助将不胜感激。