Как использовать в Django пользовательские таблицы пользователей, не являющиеся расширенной моделью пользователя?

модель пользовательского использования

    class CustomUser(models.Model):
        account = models.CharField(max_length=255, unique=True)
        name = models.CharField(max_length=255)
        password = models.CharField(max_length=255)
        mobile = models.CharField(max_length=255, unique=True)
        email = models.CharField(max_length=255, unique=True)

settings.py

AUTH_USER_MODEL = 'user.CustomUser'

Как я могу использовать пользовательскую модель для выполнения функций регистрации и входа, можете ли вы дать мне совет или ссылки? Спасибо

Создание пользовательской модели пользователя отличается от других моделей. Задание должно быть выполнено

  1. Модель пользовательского пользователя должна наследовать модель "AbstractBaseUser".
  2. Убедитесь, что "USERNAME_FIELD", "REQUIRED_FIELDS" определены в пользовательской модели пользователя.
  3. Определите пользовательский менеджер для пользовательской модели пользователя, который переопределяет методы "create_user", "create_staff" и "create_superuser", обеспечивающие гибкость при создании пользователей.

Пользовательский менеджер

class CustomUserManager(BaseUserManager):

  def save_user(self, email, password, mobile_number, **other_fields):
    if not email:
          raise ValueError(_('Please provide valid email address.'))
      user = self.model(email=self.normalize_email(email), mobile_number=mobile_number, **other_fields)
      user.set_password(password)
      user.save()
    # Add any permissions or groups to the user.
    return user
      
    
  def create_user(self, email, password, mobile_number, **other_fields):
    # set any fields of CustomUser to True or False depending on the role
    # Perform any customization required to the field values.
    # make sure user doesn't have additional privileges.
    return save_user(self, email, password, mobile_number, **other_fields)
  
  def create_staff(self, email, password, mobile_number, **other_fields):
    # set any fields of CustomUser to True or False depending on the role
    # Perform any customization required to the field values.
    # Make sure user has staff related privilege by setting corresponding field
    # to true.
    return save_user(self, email, password, mobile_number, **other_fields)
  
  def create_superuser(self, email, password, mobile_number, **other_fields):
    # set any fields of CustomUser to True or False depending on the role
    # Perform any customization required to the field values.
    # Make sure user has superuser related privilege by setting corresponding
    # field to true.
    return save_user(self, email, password, mobile_number, **other_fields)

enter image description here

Вернуться на верх