사실 프로젝트를 시작할 때 유저 모델을 가장 먼저 만들어야 한다.
장고는 기본적으로 제공하는 유저 모델이 있다.
다음과 같이 db에 auth_user
이걸 사용하면 장점은
패스워드 암호화
세션처리 등을 만들어놓음
하지만 원하는 필드가 없는 경우
auth_user를 상속받아서 모델을 만들거나 커스텀 모델을 만들면 된다.
지금은 커스텀 모델을 만드는 게 더 낫기 때문에 기존 sqlite를 삭제하고 다시
python manage.py makemigrations
python manage.py migrate
db를 생성하면 auth_user가 사라지고 커스텀한 모델이 생겨난다.
user/models.py
class User(AbstractBaseUser):
"""
유저 프로필 사진
유저 닉네임 -> 화면 표기되는 이름
유저 이름(상메)
유저 이메일 주소 -> 회원가입할 때 사용하는 아이디
유저 비밀번호 -> 디폴트
"""
profile_image = models.TextField()
nickname = models.CharField(max_length=24, unique=True)
name = models.CharField(max_length=24)
email = models.EmailField(unique=True)
USERNAME_FIELD = 'nickname'
class Meta:
db_table = 'User'
Jinstagram/settings.py
# 커스텀 유저 모델 사용
AUTH_USER_MODEL = 'user.User'
urlpatterns = [
path('join', Join.as_view()),
path('login', Login.as_view())
]
Jinstagram/urls.py
urlpatterns = [
path('', Main.as_view()),
# 다른 앱에 있는 url
path('content/',include('content.urls')),
path('user/', include('user.urls'))
]