@@ -830,6 +830,31 @@ class UserSerializer(NonNullSerializer):
830830 uid = serializers .CharField (source = "pk" , read_only = True )
831831 acls = PubSubACLSerializer (many = True , required = False )
832832
833+ def validate (self , attrs ):
834+ is_update = self .instance is not None
835+
836+ if not is_update :
837+ username = attrs .get ('username' , None )
838+ password = attrs .get ('password' , None )
839+
840+ if not username or not username .strip ():
841+ raise serializers .ValidationError ({'username' : ['This field is required.' ]})
842+ if not password :
843+ raise serializers .ValidationError ({'password' : ['This field is required.' ]})
844+
845+ else :
846+ if 'username' in self .initial_data :
847+ username = attrs .get ('username' , '' )
848+ if not username or not username .strip ():
849+ raise serializers .ValidationError ({'username' : ['This field may not be blank.' ]})
850+
851+ if 'password' in self .initial_data :
852+ password = attrs .get ('password' , '' )
853+ if not password or not password .strip ():
854+ raise serializers .ValidationError ({'password' : ['This field may not be blank.' ]})
855+
856+ return super ().validate (attrs )
857+
833858 def create_update (self , validated_data , instance = None ):
834859 is_update = instance is not None
835860
0 commit comments