【发布时间】:2020-11-25 07:24:27
【问题描述】:
我正在尝试覆盖 rest_auth 的默认 LoginSerializer,当我尝试登录时,它会抛出此错误。 这是我的代码:
settings.py
REST_AUTH_SERIALIZERS = {
'LOGIN_SERIALIZER': 'Customer.apis.serializers.LoginSerializer',
}
和登录序列化器
class LoginSerializer(serializers.ModelSerializer):
email = serializers.EmailField(write_only=True)
password = serializers.CharField(write_only=True)
class Meta:
model = Customer
fields = ['email', 'password']
def validate_email(self, email, password):
user = None
if email and password:
user = authenticate(email=email,
password=password)
else:
raise exceptions.ValidationError('Invalid Credentials')
return user
def validate(self, attrs):
email = attrs.get('email')
password = attrs.get('password')
user = self.validate_email(email, password)
attrs['user'] = user
return attrs
可能是什么错误?以及可能的解决方法?
【问题讨论】:
-
validate_email方法只接受 1 个参数,而不接受 2 个。
标签: django django-models django-rest-framework django-authentication django-rest-auth