Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Rest Framework非类型对象在调用authenticate时没有用户属性_Django_Api_Django Rest Framework_Django Serializer_Django Autocomplete Light - Fatal编程技术网

Django Rest Framework非类型对象在调用authenticate时没有用户属性

Django Rest Framework非类型对象在调用authenticate时没有用户属性,django,api,django-rest-framework,django-serializer,django-autocomplete-light,Django,Api,Django Rest Framework,Django Serializer,Django Autocomplete Light,我正在开发一个自定义的AuthTokenView,如下所示: class ObtainAuthTokenView(APIView): throttle_classes = () permission_classes = () parser_classes = ( parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser, ) render

我正在开发一个自定义的AuthTokenView,如下所示:

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函数时,会显示以下错误:

“非类型”对象没有属性“用户”

从一段时间以来一直被困在这里
如果有任何帮助,我们将不胜感激

您能分享您的回溯错误吗?