Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 Restframework u覆盖rest u验证登录视图_Django_Django Rest Framework_Django Rest Auth - Fatal编程技术网

django Restframework u覆盖rest u验证登录视图

django Restframework u覆盖rest u验证登录视图,django,django-rest-framework,django-rest-auth,Django,Django Rest Framework,Django Rest Auth,我正试图用我自己的LoginSerializer覆盖rest_auth LoginView class LoginSerializer(serializers.ModelSerializer): """Login Serialization for first_token""" first_token = serializers.CharField(write_only=True) phonenumber = serializers.CharField(write_onl

我正试图用我自己的LoginSerializer覆盖rest_auth LoginView

class LoginSerializer(serializers.ModelSerializer):
    """Login Serialization for first_token"""
    first_token = serializers.CharField(write_only=True)
    phonenumber = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = ['phonenumber', 'first_token']

    def _validate_phonenumber(self, phonenumber, first_token):
        user = None
        if phonenumber and first_token:
            user = authenticate(phonenumber=phonenumber, first_token=first_token)
        else:
            raise exceptions.ValidationError('phonenumber does not exist')
        return user

    def validate(self, attrs):
        first_token = attrs.get('first_token')
        phonenumber = attrs.get('phonenumber')
        user = self._validate_phonenumber(phonenumber, first_token)
        attrs['users'] = user
        return attrs
设置.py

REST_AUTH_SERIALIZERS = {
    'LOGIN_SERIALIZER': 'blog.serializers.LoginSerializer',
}
当我尝试登录时,出现错误:

在/api/login/'user'处出现密钥错误

workspace/test blog/env/lib/python3.6/site-packages/rest\u auth/views.py 登录时 self.user=self.serializer.validated_数据['user']

my Usermodel从AbstractBaseUser继承:

class User(AbstractBaseUser):
    username = models.CharField(max_length=20, blank=True)
    email = models.EmailField(verbose_name='email address',blank=True, null=True, max_length=255, unique=True, default=None)
    phonenumber = models.CharField(validators=[phone_regex], max_length=17, null=True, unique=True)
    first_token = models.ForeignKey(FirstToken, on_delete=models.SET_NULL, null=True, related_name='first_token', blank=True)
    active = models.BooleanField(default=True)
    staff = models.BooleanField(default=False)
    admin = models.BooleanField(default=False)
    objects = UserManager()

    USERNAME_FIELD = 'phonenumber'
    REQUIRED_FIELDS = []
我卡住了。我需要一些帮助

attrs[‘users’] = user
密钥需要是
用户
,而不是
用户