장고 admin을 상속받아서 쓸 때마다, 거슬리는 First name, Last name.
이 녀석들을 처리하기 위해,
AbstractUser 대신 AbstractBaseUser라는 클래스를 상속받을 시에는 기존 (is_superuser, is_staff, is_active같은)특정 필드와 PermissionsMixin클래스 상속이 있어야 관리자 페이지에 접근 할 수 있음.
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=50, unique=True)
name = models.CharField(max_length=20)
is_superuser = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
email = models.EmailField(max_length=254, unique=True)
address = models.CharField(max_length=254)
date_joined = models.DateTimeField(auto_now_add=True)
# 고유 식별자로 사용되는 user모델의 필드 이름
USERNAME_FIELD = "username"
# 필수로 입력받고 싶은 값으로 createsuperuser시 사용
REQUIRED_FIELDS = ["name", "email"]
objects = CustomUserManager()
def __str__(self):
return self.username
def soft_delete(self):
self.is_active = False
self.save()
# 로그인 해싱 커스터마이징을 위한 check_password 오버라이딩
def check_password(self, raw_password):
return bcrypt.checkpw(raw_password.encode('utf-8'), self.password.encode('utf-8'))
'Django' 카테고리의 다른 글
장고 서버 배포 간단 요약 (0) | 2024.10.04 |
---|---|
장고 커서 페이지네이션 (0) | 2024.10.02 |
Django MTM field 단점 (0) | 2024.09.23 |
Django permissoin_classes (GET, POST 나누기) (0) | 2024.09.05 |
Django 서버 배포하기 (4) | 2024.09.03 |