diff --git a/apps/authentication/api/v1/serializers/serializer.py b/apps/authentication/api/v1/serializers/serializer.py index 0d5a05c..a1cec6e 100644 --- a/apps/authentication/api/v1/serializers/serializer.py +++ b/apps/authentication/api/v1/serializers/serializer.py @@ -105,8 +105,16 @@ class UserSerializer(serializers.ModelSerializer): mobile = attrs['mobile'] national_code = attrs['national_code'] - if self.Meta.model.objects.filter(Q(mobile=mobile) | Q(national_code=national_code)).exists(): - raise UserExistException() + if not self.instance: + if self.Meta.model.objects.filter(Q(mobile=mobile) | Q(national_code=national_code)).exists(): + raise UserExistException() + elif self.instance: + if self.instance.mobile != mobile: + if self.Meta.model.objects.filter(mobile=mobile).exists(): + raise UserExistException() + if self.instance.national_code != national_code: + if self.Meta.model.objects.filter(national_code=national_code).exists(): + raise UserExistException() def to_representation(self, instance): """ Custom output """