장고가 기본적으로 가지고 있는 AbstractBaseUser
를 상속받아서 공식 문서를 참고하면서 유저모델을 수정해보았다.
로그인 할 때 사용할 필드를 지정해준다.
USERNAME_FIELD = "email"
이렇게 설정하면 email
로 로그인이 가능하다.
회원가입 시 반드시 채워야 할 필드다.
REQUIRED_FIELDS = ["age",]
이렇게 설정하면 회원가입 시 age
를 필수로 받아야 한다.
필드에 선택지를 제공한다.
class User(AbstractBaseUser):
class GenderChoices(models.TextChoices):
MALE = "M", "남성"
FEMALE = "F", "여성"
ETC = "ETC", "기타"
NO = "NO", "응답하지 않음"
gender = models.CharField(choices=GenderChoices.choices, max_length=3, blank=True)
여기서는 gender
를 TextChoices
모듈을 사용해 선택할 수 있게 선택지를 넣어주었다.
만약, 남성으로 선택하고 싶다면
1. admin
페이지에서는 남성
을 선택
2. POSTMAN
에서 raw/json
에서 "gender" : "M"
이렇게 입력해야 한다.
null = True
: DB 상에서 정보 값이 없어도(null 상태) 저장될 수 있게 한다.
blank = True
: DB 상에서 비워짐. ''로 저장됨.
time = timezone.now()
현재 시간을 불러온다.
만약
# settings.py
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_TZ = False
이렇게 설정해준다면 timezone.now()
를 사용한다고 해도 한국 시간으로 제대로 설정된다.
시간날 때 읽어보고 정리하자.