2023-04-29 TIL

0v0baek·2023년 4월 29일
0

TIL

목록 보기
41/92

[Django] Customizing authentication

공식 문서

장고가 기본적으로 가지고 있는 AbstractBaseUser 를 상속받아서 공식 문서를 참고하면서 유저모델을 수정해보았다.

USERNAME_FIELD

로그인 할 때 사용할 필드를 지정해준다.

 USERNAME_FIELD = "email"

이렇게 설정하면 email로 로그인이 가능하다.

REQUIRED_FIELDS

회원가입 시 반드시 채워야 할 필드다.

REQUIRED_FIELDS = ["age",]

이렇게 설정하면 회원가입 시 age를 필수로 받아야 한다.

TextChoices : 선택지 설정해주기

필드에 선택지를 제공한다.

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)

여기서는 genderTextChoices 모듈을 사용해 선택할 수 있게 선택지를 넣어주었다.

만약, 남성으로 선택하고 싶다면
1. admin 페이지에서는 남성을 선택
2. POSTMAN 에서 raw/json 에서 "gender" : "M"

이렇게 입력해야 한다.

[Django] app 제거하기

참고 블로그

[Django] null=True와 blank=True의 차이

null = True : DB 상에서 정보 값이 없어도(null 상태) 저장될 수 있게 한다.
blank = True : DB 상에서 비워짐. ''로 저장됨.

[Django] timezone.now()

공식 문서
참고 문서

time = timezone.now()

현재 시간을 불러온다.

만약

# settings.py

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

USE_I18N = True

USE_TZ = False

이렇게 설정해준다면 timezone.now()를 사용한다고 해도 한국 시간으로 제대로 설정된다.

[Django] DEBUG = FALSE/TRUE

참고 블로그

시간날 때 읽어보고 정리하자.

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글