django-rest-framework-passwordless icon indicating copy to clipboard operation
django-rest-framework-passwordless copied to clipboard

Custom user-mobile field

Open nate-sha opened this issue 3 years ago • 2 comments

Hi,

This is most likely not an issue rather than a problem that I could not find an answer for, thank you in advance :-)

Error: django.core.exceptions.FieldError: Cannot resolve keyword 'mobile' into field

Setup: The user mobile field lives in a separate "Profile" model that has an OneToOne relation with the User model, to get the "mobile" values, I usually do User.profile.mobile; I am currently using this to return the authenticated user's full profile.

I tried the following values for PASSWORDLESS_USER_MOBILE_FIELD_NAME and it did not work

  • PASSWORDLESS_USER_MOBILE_FIELD_NAME: 'profile.mobile'
  • PASSWORDLESS_USER_MOBILE_FIELD_NAME: 'Profile.mobile'
  • PASSWORDLESS_USER_MOBILE_FIELD_NAME: 'User.profile.mobile'

Do I need to override/use my own "send_sms_with_callback_token" to_number = getattr(user, api_settings.PASSWORDLESS_USER_MOBILE_FIELD_NAME) if to_number.class.name == 'PhoneNumber': to_number = to_number.str()

Thanks

nate-sha avatar May 20 '22 19:05 nate-sha

same issue

phoorooz avatar Jul 13 '22 12:07 phoorooz

I think it's a bug. I checked the code and this line causing the error.

            if api_settings.PASSWORDLESS_REGISTER_NEW_USERS is True:
                # If new aliases should register new users.
                try:
                    user = User.objects.get(**{self.alias_type+'__iexact': alias})  # it looks for alias_type for mobile field that is always 'mobile'
                    # same with email. Always 'email' check
                except User.DoesNotExist:
                    user = User.objects.create(**{self.alias_type: alias})
                    user.set_unusable_password()
                    user.save()
            else:
                # If new aliases should not register new users.
                try:
                    user = User.objects.get(**{self.alias_type+'__iexact': alias})
                except User.DoesNotExist:
                    user = None

made PR #131

nikitaSobolev2 avatar Feb 10 '23 11:02 nikitaSobolev2