반응형
AbstractUser를 이용한 Custom User Field 확장 방법
(How to expand UserField Using "AbstractUser" in Django)
* 다른 여러 블로그 등을 찾아보았지만 장고를 이제 막 시작한 나한테는 설명을 이해하기가 쉽지 않았다.
* 아래 내용은 장고의 User 모델을 사용하면서 User 모델 Field 확장을 쉽게 하는 법을 설명한다.
* 해당 내용은 장고의 공식 문서를 참고해서 작성하였다.
# 비전공자가 이해한 Django
1. 새로운 app 생성 User의 Field를 관리할 앱을 생성한다.
python manage.py startapp account
2. models.py 작성
- User 모델에 추가할 내용을 작성한다.
# account/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
A = models.CharField(max_length=10)
B = models.CharField(max_length=5)
3. admin.py 작성
- 관리자 페이지에서 확인할 내용들을 작성한다.
# account/admin.py
from django.contrib import admin
from .models import User
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
# username 은 장고에서 제공하는 User 모델에 있는 컬럼명
# 관리자 페이지에서 리스트를 보여줄 때 열로 활용
list_display = ('username', 'email', 'A', 'B')
list_filter = ('username',)
4. forms.py 작성
- settings.py 파일이 있는 폴더에 forms.py 파일을 만들어 아래의 내용을 작성한다.
# myapp/forms.py
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import get_user_model
# UserCreationForm 을 상속받아 user 를 생성할 때 사용하는 모델을 바꿔준다.
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = get_user_model()
fields = UserCreationForm.Meta.fields
5. views.py 작성
- settings.py 파일이 있는 폴더에 views.py 파일을 만들어 아래의 내용을 작성한다.
# myapp/views.py
from .forms import CustomUserCreationForm
class UserCreateView(CreateView):
form_class = CustomUserCreationForm
6. settings.py 작성
- settings.py 파일에 몇 가지 옵션을 추가한다.
# myapp/settings.py
INSTALLED_APPS = [
# 생략
'account.apps.AcountConfig' # 추가
]
AUTH_USER_MODEL='account.User'
본문 내용 중 오류가 있거나 실행이 잘 안되시는 분들은 밑에 댓글을 남겨주세요.
가능한 빠른 시일 내에 수정 및 답변 드리도록 하겠습니다.
반응형
'BackEnd > Django' 카테고리의 다른 글
Django 장고 - Secret key 파일 분리하는 방법 (0) | 2021.11.01 |
---|---|
Django 장고 Form_valid 함수 (0) | 2021.11.01 |
Django 장고 ORM으로 OR/AND 사용하기(Q 사용) (0) | 2021.07.13 |
Django 외래키(Foreign Key)를 이용해 정보를 불러오는 방법 (6) | 2021.06.29 |
Django 파일 업로드(File Upload) (0) | 2021.06.28 |