django.contrib.auth
AUTH_USER_MODEL
settings.py
의 AUTH_USER_MODEL
을 커스텀 User 모델로 지정변경 시 모델 관계에 영향을 미치기 때문에 많은 수작업이 필요
프로젝트 시작단계에 진행하는 것을 강력하게 권장
# accounts/models.py
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
# settings.py
AUTH_USER_MODEL = 'accounts.User'
# accounts/admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
AbstracUser
- 관리자 권한과 함께 완전한 기능을 가지고 있는 User Model을 구현하는 추상 기본 클래스
Abstract base classes(추상 기본 클래스)
- 몇 가지 공통 정보를 여러 다른 모델에 넣을 때 사용하는 클래스
- 데이터베이스 테이블을 만드는 데 사용되지 않으며, 대신 다른 모델의 기본 클래스로 사용되는 경우 해당 필드가 하위 클래스의 필드에 추가됨
AuthenticationForm(request, data = request.POST)
login(request, user, backend=None)
settings.py
의 context processor 설정 덕분에 어느 템플릿에서든 유저 정보에 접근 가능{{ user }}
에 저장됨