如何解决调用身份验证时,Django Rest Framework Nonetype对象没有属性用户
我正在使用以下自定义ObtainAuthTokenView:
class ObtainAuthTokenView(APIView):
throttle_classes = ()
permission_classes = ()
parser_classes = (
parsers.FormParser,parsers.MultiPartParser,parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
def post(self,request):
serializer = serializers.AuthCustomTokenSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token,created = Token.objects.get_or_create(user=user)
content = {
'token': unicode(token.key),}
return Response(content)
序列化器类
from rest_framework.authentication import authenticate
class AuthCustomTokenSerializer(serializers.Serializer):
username = serializers.CharField()
password = serializers.CharField()
def validate(self,attrs):
email_or_username = attrs.get('username')
password = attrs.get('password')
if email_or_username and password:
# Check if user sent email
user_request = get_object_or_404(
User,email=email_or_username,)
email_or_username = user_request.username
user = authenticate(username=email_or_username,password=password)
if user:
if not user.is_active:
msg = _('User account is disabled.')
raise exceptions.ValidationError(msg)
else:
msg = _('Unable to log in with provided credentials.')
raise exceptions.ValidationError(msg)
else:
msg = _('Must include "email or username" and "password"')
raise exceptions.ValidationError(msg)
attrs['user'] = user
return attrs
调用序列化程序中的authenticate函数时,它将显示以下错误:
在这里停留了一段时间 任何帮助将不胜感激
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。