django admin 페이지에서 로그인이 안되는 이슈가 발생했습니다.

안녕하세요. 현재 유저모델을 커스텀해서 사용 중이고 cli로 superuser를 생성하여 admin 페이지에서 로그인을 시도하였습니다.

로그인을 했을 때 admin 페이지 및 터미널 로그에서 아무런 반응이 없습니다.

하나 변화가 있다면 Dev tool의 네트워크 탭에서 Status에 (pending) 이라는 것만 떠 있습니다.

코드를 설명 드리자면

#.../users/models.py
class UserManager(BaseUserManager): #BaseUserManager를 상속받아 사용했습니다.
    use_in_migrations = True

    def _create_user(self, nickname: str, email: str, password: str, **extra_fields):
        if not email:
            raise ValueError("The given Email must be set")
        email = self.normalize_email(email)
        user: AbstractBaseUser = self.model(nickname=nickname, email=email, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_user(self, nickname: str, email: str, password: str, **extra_fields):
        extra_fields.setdefault('is_staff', False)
        extra_fields.setdefault('is_superuser', False)
        return self._create_user(nickname, email, password, **extra_fields)

    def create_superuser(self, nickname: str, email: str, password: str, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
        extra_fields.setdefault('birth_date', '1970-01-01')

        if extra_fields.get('is_staff') is not True:
            raise ValueError('Superuser must have is_staff=True.')

        return self._create_user(nickname, email, password, **extra_fields)


class User(AbstractBaseUser, PermissionsMixin):
    LOGIN_TYPE = (
        ("P", "Person"),
        ("U", "University")
    )
    GENDER = (
        ("M", "MAN"),
        ("W", "WOMAN")
    )
    nickname = models.CharField("아이디", max_length=20, unique=True)
    email = models.EmailField("이메일", max_length=30)
    username = models.CharField("이름", max_length=20)
    sex = models.CharField("성별", max_length=5, choices=GENDER)
    birth_date = models.DateField("생년 월일")
    login_type = models.CharField("로그인 유형", max_length=5, choices=LOGIN_TYPE)
    show_guide = models.BooleanField("사용 가이드 보기", default=True)
    send_delete_mail = models.BooleanField("삭제 예정 메일 전송 여부", default=False)
    use_data = models.BooleanField("데이터 활용동의", default=False)
    is_staff = models.BooleanField('관리자 권한', default=False)

    createdAt = models.DateTimeField("생성 시간", auto_now_add=True)
    updatedAt = models.DateTimeField("수정 시간", auto_now=True)
    deletedAt = models.DateTimeField("삭제 시간", blank=True, null=True)

    objects = UserManager()

    USERNAME_FIELD = 'nickname'
    REQUIRED_FIELDS = ['email']

    class Meta:
        db_table = "user"
        swappable = 'AUTH_USER_MODEL'
#.../<my project name>/settings/dev.py
...
AUTH_USER_MODEL = 'users.User'
...

어떤 부분에서 문제가 발생하는지 감이 잡히질 않습니다.

감사합니다

orange123 251

2022년 4월 4일 3:17 오후

목록으로