본문 바로가기

Django

Django 유저모델 Email필드로 로그인

AbstractUser 유저 모델 클래스에서 username필드를 아이디로 사용한다.

그래서 보통 이메일로 로그인기능을 만들때 username 필드에 Email 을 저장하고 사용한다.

 

1.먼저 user 앱을 만들고 User 모델을 AbstractUser 받아 생성한다

USERNAME_FILED 와 REQUIRED_FIELDS 를 위와 같이 설정해준다

여기서

2. USERNAME_FILED 는 꼭 로그인할 email 필드로 설정한다.

 

3.settings.py에 INSTALLED_APPS 에 user 앱을 추가해준다

4.settings.py에  AUTH_USER_MODEL, LOGIN_FIELDS 를 설정해준다

끝!

 

테스트를 위해 간단한 html과 views.py 도 작성해준다.

 

로그인이 성공하면 유저네임과 이메일이 보이는 템플릿 코드다.

 

코드를 보면

authenticate(email=email, password=password)

이메일로 로그인 했다는 걸 확인할 수 있다.