как сохранить имя пользователя (телефон) и пароль по unidecode в django? - PullRequest
1 голос
/ 20 июня 2019

Я использую пользовательскую модель в Django. При регистрации пользователя с использованием персидских или арабских цифр я не могу войти в систему, поскольку имя пользователя и пароль сохранены на персидском языке.

В форме входа я могу изменить запись на unidecode, но в форме регистрации я не могу. Если я регистрируюсь с английскими цифрами, я могу войти со всеми цифрами (английский, персидский и т. Д.), Но если я регистрируюсь на персидском или арабском, я не могу войти. Как я могу решить это?

Я использую Unidecode для Digit и text-unidecode для поля char в коде я пытаюсь unidecoede телефон (имя пользователя) и пароль в форме Reg, но я не могу заставить его работать

Сохранить в форме:

 def save(self, commit=True):
        # Save the provided password in hashed format
        user = super(RegisterForm, self).save(commit=False)
        password1 = self.cleaned_data.get("password1")
        password1 = unidecode(password1)
        user.set_password(password1)
        user.is_active = True # send confirmation email via signals
        # obj = EmailActivation.objects.create(user=user)
        # obj.send_activation_email()
        if commit:
            user.save()
        return user

Создать пользователя в модели:

class UserManager(BaseUserManager):
   def create_user(self, phone, name, family, password=None, is_active=True, is_staff=False, is_admin=False):
      if not phone:
         raise ValueError("Users must have an phone")
      if not password:
         raise ValueError("Users must have a password")

      if not name:
         raise ValueError("Users must have a name") 

      if not family:
         raise ValueError("Users must have a family")    
      this_phone       = unide(phone)
      this_password    = unidecode(password)
      user_obj    = self.model(
         phone    = this_phone,
         name     = name,
         family   = family
        )
      user_obj.set_password(this_password) # change user password
      user_obj.is_active = is_active
      user_obj.staff = is_staff
      user_obj.admin = is_admin
      user_obj.save(using=self._db)
      return user_obj
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...