From 59f482fd65da542c4cd63d16c2b7645a283a7493 Mon Sep 17 00:00:00 2001 From: ante Date: Sat, 3 Jan 2015 14:55:33 +0100 Subject: [PATCH] Making PasswordChangeSerializer compatible with DRF3 - validate_old_password - works with field value and not with dictionary of all values - validate - should not return None but raise ValidationError --- rest_auth/serializers.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rest_auth/serializers.py b/rest_auth/serializers.py index 00fc438..58c1809 100644 --- a/rest_auth/serializers.py +++ b/rest_auth/serializers.py @@ -138,19 +138,20 @@ class PasswordChangeSerializer(serializers.Serializer): self.request = self.context.get('request') self.user = getattr(self.request, 'user', None) - def validate_old_password(self, attrs, source): + def validate_old_password(self, value): if self.old_password_field_enabled and self.user and \ - not self.user.check_password(attrs.get(source, '')): + not self.user.check_password(value): raise serializers.ValidationError('Invalid password') - return attrs + return value def validate(self, attrs): self.set_password_form = self.set_password_form_class(user=self.user, data=attrs) if not self.set_password_form.is_valid(): - self._errors = self.set_password_form.errors - return None + #self._errors = self.set_password_form.errors + #return None + raise serializers.ValidationError(self.set_password_form.errors) return attrs def save(self):