반응형
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차
2022.12.09. 71일차 - TIL
User 모델 커스텀
class User(AbstractBaseUser, PermissionsMixin):
GENDER_CHOICES = (
(0, 'male'),
(1, 'female'),
(2, 'not specified'),
)
email = models.EmailField(max_length=255, unique=True)
user_nickname = models.CharField(max_length=20, blank=False)
user_phone = models.IntegerField(blank=False)
user_gender = models.IntegerField(choices=GENDER_CHOICES, default=2)
user_introduce = models.CharField(max_length=40, blank=True, null=True)
user_profile_img = models.ImageField(blank=True, upload_to="profile_img/", default="profile_img/profile.jpeg", null=True)
user_birth = models.DateField(null=True)
user_address = models.CharField(max_length=20, blank=False)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = [user_nickname, user_phone, user_address]
def __str__(self):
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
- REQUIRED_FIELDS에 있는 값들은 Blank=False로 설정 해야한다.
- AbstractBaseUser 상속으로 인해 password 컬럼은 생성할 필요가 없다.
- USERNAME_FIELD = 'email': AbstractBaseUser를 상속받아 사용하기 때문에 일반적인 로그인과정과 비교하면 id가 username 필드가 된다. email이 user필드의 역할을 해야하기 때문에 email로 수정한다.
- str(self) : admin페이지 로그인정보 email로 표현한다.
- def has_perm(self, perm, obj=None) : True를 반환하여 권한이 있음을 알린다. Ojbect를 반환하는 경우 해당 Object로 사용 권한을 확인하는 절차가 필요하다.
- def has_module_perms(self, app_label) : True를 반환하여 주어진 앱(App)의 모델(Model)에 접근 가능하도록 한다.
- def is_staff(self) : True가 반환되면 장고의 관리자 화면에 로그인 할 수 있다.
Unautorized 토큰 불러오지 못함
원인
- serializer.py에서 해당 user의 값을 가져오는 지정된 fields에 token부재
해결방법
- fields값을 all로 변경
반응형
'개발일지 > AI 캠프' 카테고리의 다른 글
내일배움캠프 AI - 72일차 TIL, 2022.12.12 (0) | 2022.12.19 |
---|---|
내일배움캠프 AI - 15주차 WIL (0) | 2022.12.11 |
내일배움캠프 AI - 70일차 TIL, 2022.12.08 (0) | 2022.12.09 |
내일배움캠프 AI - 69일차 TIL, 2022.12.07 (0) | 2022.12.08 |
내일배움캠프 AI - 68일차 TIL, 2022.12.06 (1) | 2022.12.07 |