728x90
- User 모델 대체
- 일부 프로젝트에서는 Django의 내장 User 모델이 제공하는 인증 요구사항이 적절 X
- ex) username 대신 email을 식별 토큰으로 사용하는 것이 적합한 사이트
- Django는 User를 참조하는데 사용하는 AUTH_USR_MODEL 값을 제공하여, default user model을 재정의 할 수 잇도록 함
- Django는 커스텀 유저 모델을 설정하는 것을 강력 권장
- 단, migrations 실행하기 전에 이 작업을 마쳐야 함
- 일부 프로젝트에서는 Django의 내장 User 모델이 제공하는 인증 요구사항이 적절 X
- AUTH_USER_MODEL
- User를 나타내는 모델
- 프로젝트가 진행되는 동안 변경X
- 프로젝트 시작 시 설정, 참조하는 모델은 첫번째 마이그레이션에서 사용할 수 있어야 함
- 기본 값 : 'auth.User' (auth 앱의 User 모델)
- Custom User 모델 정의
# 앱/models.py from django.contrib.auth.models import AbstractUser class User(AbstractUser): pass # 앱의 User모델을 사용하도록 변경 # 프로젝트/settings.py AUTH_USER_MODEL = '앱.User' # 앱/admin.py from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import User admin.site.register(User,UserAdmin) # 기존 내장 User 모델을 사용한 ModelForm을 커스텀 모델로 대체 # UserCreationForm, UserChangeForm # UserCreationForm 확장 # 앱/forms.py from django.contrib.auth.forms import UserCreationForm from myapp.models import CustomUser class CustomUserCreationForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = CustomUser fields = UserCreationForm.Meta.fields + ('custom_field',)
- User 모델 참조
- settings.AUTH_USER_MODEL
- User 모델에 대한 외래 키 또는 다대다 관계를 정의 할 때 사용
- models.py에서 User모델을 참조할 때 사용
- get_user_model()
- 현재 활성화된 User 모델 반환
- User를 직접 참조하지 않는 이유
- models.py가 아닌 다른 모든 곳에서 유저 모델을 참조할 때 사용
- 현재 활성화된 User 모델 반환
- settings.AUTH_USER_MODEL
728x90
반응형
'TIL - 프로그래밍 > 개념, 설정' 카테고리의 다른 글
REST API (0) | 2022.04.19 |
---|---|
Django Handling HTTP requests (0) | 2022.04.18 |
[Python] 외부 키, 참조 (0) | 2022.04.17 |
[Python] ORM aggregate (0) | 2022.04.16 |
[Python] 데이터베이스 (0) | 2022.04.15 |
댓글