본문 바로가기

Web

django에서 email를 사용자 id로 사용하고 싶을때..

Django에서는 User라는 객체가 있는데, user email이 아닌 username이 unique한 값으로 설정되어 있다. 즉, 메일주소는 동일한값이 존재하는 것은 허용하지만, username은 중복되는 것은 허용하지 않는다. 그런데, 요즘은 username으로 가입 id를 받는것보다 email주소를 user id로 받는 경우가 많다.


그러면 어떻게 해야할까..


아래 사이트에서 Custom user model을 다운받아서 설치하면 된다. 참고로 django 1.5버젼 이상에서만 테스트된것 같다.

django-custom-user는 django의 기본적인 User객체와 동일하지만, username 대신에 email을 사용한다는 차이 뿐이다.



설치 및 설정 순서


(1) django-custom-user를 설치한다.


 pip install django-custom-user


설치하면 이렇게 진행된다..


Downloading/unpacking django-custom-user

  Running setup.py egg_info for package django-custom-user

    

Requirement already satisfied (use --upgrade to upgrade): Django>=1.5 in /usr/local/lib/python2.7/dist-packages (from django-custom-user)

Installing collected packages: django-custom-user

  Running setup.py install for django-custom-user

    

Successfully installed django-custom-user

Cleaning up... 


(2) settings.py 파일에 INSTALLED_APPS에 'custom_user'을 삽입한다.


INSTALLED_APPS = (

...,

'custom_user',

) 


(3) AUTH_USER_MODEL로 EmailUser을 입력.


AUTH_USER_MODEL = 'custom_user.EmailUser' 


(4) database 테이블을 생성한다.


python manage.py syncdb