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 오후