본문 바로가기
TTL/5주차 ~ 8주차 TIL (9.26 ~ 10.21)

2022-09-28 TIL (User Model 확장하기)

by dev_junseok 2022. 9. 28.
  1. 프로젝트에 사용될 폴더를 생성하고, 편집기에서 생성한 폴더를 열어주세요.
  2. 파이썬 가상 환경을 생성하고 활성화해주세요.
  3. Django 패키지를 설치해주세요.
  4. spartatest라는 django 프로젝트를 생성해주세요
  5. customuser라는 앱을 생성해주세요
  6. settings.py에 앱을 등록해주세요.
  7. Django의 User를 기반으로 만든 CustomModel라는 클래스를 만들어주세요.
  • 조건: 테이블 이름은 custom_user
  • Django의 User 모델에서 아래의 필드를 추가해주세요.
    • address (TextField, max_length=500, blank=True)
    • bio (TextField, max_length=500, blank=True)
    힌트: class CustomModel(AbstractUser)
  1. Django에게 기본 인증과정 (AUTH_USER_MODEL)을 customuser 앱에 작성한 CustomModel로 사용하겠다! 라고 알려주세요.
  2. 힌트: settings.py
  3. 데이터베이스에 변경사항을 반영하고 적용해주세요.
  4. 관리자 계정을 만들어주세요.
  5. Admin 사이트에서 CustomModel를 볼 수 있도록 적용해주세요.
  6. 서버를 켜고 CustomModels에서 아래와 같이 address와 bio를 볼 수 있다면 성공입니다.

먼저 앱을 추가합니다.

python manage.py startapp customuser

왼쪽 탐색기에서 customuser 폴더가 생성된 것을 확인할 수 있습니다.

 

이제 customuser 폴더의 models.py에 데이터 테이블을 추가해주도록 하겠습니다.

from django.db import models
from django.contrib.auth.models import AbstractUser


# Create your models here.
class UserModel(AbstractUser):

    class Meta:
        db_table = "custom_user" 

    bio = models.TextField(max_length=500, blank=True)
    address = models.TextField(max_length=500, blank=True)

이제 customuser의 admin.py에 데이터테이블을 등록해서 admin 페이지에 출력해주도록 하겠습니다.

 

from django.contrib import admin
from .models import UserModel

# Register your models here.
admin.site.register(UserModel) # 이 코드가 나의 UserModel을 Admin에 추가 해 줍니다