AI웹 개발자 과정 공부 (팀스파르타)/Django (장고)

24.04.30_TIL (Django Custom UserModel 활용하기 )

티아(tia) 2024. 5. 1. 08:56
728x90

 

 

++ 장고 공식 문서는 항상 확인하기 

https://docs.djangoproject.com/en/4.2/

 

 

 

1.  Django의 기본 User Model 을 세팅해보자.

 

  • accounts 에 models.py 에 추가해준다.
from django.db import models
from django.contrib.auth.models import AbstractUser


# Create your models here.
class User(AbstractUser):
    pass

 

 

  • my_first_pjt 에 settings.py 에 추가해준다. 보통은 DATABASES와 AUTH_PASSWORD_VALIDATORS 사이에 적어준다.
...
AUTH_USER_MODEL = 'accounts.User'
...

 

 

++ 원래는 처음 프로젝트 시작할 때 설정해주고 시작해야함!

  • migration 적용하기
    • 프로젝트 중간에 진행되므로 데이터베이스를 초기화하고 진행해야한다. → 그렇지 않을 경우, 마이그레이션이 뒤엉키게 돼요!

 

 

 

 

 

 

 

 

2.  Django의 데이터베이스를 지우고 다시 설정!

  • db.sqlite3 파일 삭제 및 모든 migration 삭제 후 다시 migration합니다.
python manage.py makemigrations

 

  •  새로 생성된 migration 이 많은 것을 볼 수 있다.

 

python manage.py migrate

 

  • 다시 초기화 되어 마이그래잇 된 것을 볼 수 있다.

 

  • 디비가 초기화 되었기 때문에 다시 admin 아이디를 만들어 주어야 한다.
  • 이 전에 회원가입하면서 만들었던 데이터도 다 날아간 것을 볼 수 있다.
python manage.py createsuperuser

 

 

  •  다른 회원가입을 하려고 하니까 에러가 난다.

 

 

 

  • user을 맞춰주어야 한다.
  • accounts의 forms.py 에서 수정해준다.
from django.contrib.auth.forms import  UserChangeForm, UserCreationForm
...

class CustomUserCreationForm(UserCreationForm):
    class Meta:
        model = get_user_model()
        fields = UserCreationForm.Meta.fields

 

  • 기존의 views.py 에 있는 UserCreationForm을 CustomUserCreationForm 으로 바꾸어주어야 한다.
  • signup에 수정해주면서 상속도 받아야함.
from .forms import CustomUserChangeForm, CustomUserCreationForm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형