커스텀 유저 모델을 설정하는 것을 강력하게 권장 (반드시 첫 migrate 실행 전 설정)
auth.User
)이 제공하는 인증 요구사항이 적절하지 않을 수 있음AUTH_USER_MODEL
값을 제공(settings.py
내에 존재)하여 default user model을 재정의(override)할 수 있도록 함# appName/models.py
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
# settings.py
...
AUTH_USER_MODEL = 'appName.User'
# appName/admin.py
...
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
appName_user
의 column이 생성된다.회원가입 시, 회원 정보 수정 시 사용하는 ModelForm
get_user_model()
을 통해 참조get_user_model()
: 현재 프로젝트의 활성화된 User 모델을 return하는 함수# forms.py
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth import get_user_model
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = get_user_model()
fields = UserCreationForm.Meta.fields + ('custom_field')
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = get_user_model()
fields = '__all__'