Django로 instagram 만들어보기 (5) - 유저 모델

swb·2022년 11월 27일
0

django

목록 보기
6/11

1. 유저 모델

  • 사실 프로젝트를 시작할 때 유저 모델을 가장 먼저 만들어야 한다.

  • 장고는 기본적으로 제공하는 유저 모델이 있다.
    다음과 같이 db에 auth_user

  • 이걸 사용하면 장점은
    패스워드 암호화
    세션처리 등을 만들어놓음

  • 하지만 원하는 필드가 없는 경우
    auth_user를 상속받아서 모델을 만들거나 커스텀 모델을 만들면 된다.

  • 지금은 커스텀 모델을 만드는 게 더 낫기 때문에 기존 sqlite를 삭제하고 다시
    python manage.py makemigrations
    python manage.py migrate
    db를 생성하면 auth_user가 사라지고 커스텀한 모델이 생겨난다.

2. 유저 모델 생성

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'

3. 로그인, 회원가입 페이지

  • template/user/login.html and join.html을 생성한다.
  • 각 앱에 따른 urls 설정을 해주는 게 낫기 때문에 user에도 따로 urls를 만든다.
    user/urls.py
urlpatterns = [
    path('join', Join.as_view()),
    path('login', Login.as_view())
]
  • user의 urls를 쓰기.

Jinstagram/urls.py

urlpatterns = [
    path('', Main.as_view()),
    # 다른 앱에 있는 url
    path('content/',include('content.urls')),
    path('user/', include('user.urls'))
]

출처

profile
개발 시작

0개의 댓글