본문 바로가기
Python/Django

Django의 기본 제공 모델을 수정해보자!

by K-밍키 2022. 5. 31.

사용자의 가입을 받는 모델의 경우 django에서 제공하는 auth_user라는 모델이 존재한다. 이 모델을 약간 커스텀하여 사용해보자!


1. auth_user 모델  비교하기

모델 비교

 

2. class의 상속 개념 : 다른 class의 함수를 사용하고 싶을 때 인자로 지정하면 상속하여 사용가능하다.

class A:
	def 기능_A_1:
		return '기능_A_1'
	def 기능_A_2:
		return '기능_A_2'

class B:
	def 기능_B_1:
		return '기능_B_1'
        
------->

# A의 함수를 모두 사용하는 B를 생성
class B(A):
	def 기능_B_1:
		return '기능_B_1'

 

3. auth_user의 틀에서 bio만 추가해서 사용하기

from django.db import models

# AbstractUser 를 임포트
from django.contrib.auth.models import AbstractUser

# 인자를 AbstractUser로 지정하여 AbstractUser의 기능을 가져옴
class UserModel(AbstractUser):

    class Meta:
        db_table = "my_user" # 여기는 테이블 이름이에요! 꼭 기억 해 주세요!
	
    # AbstractUser의 모델에서 아래 bio만을 추가함
    bio = models.TextField(max_length=500, blank=True)

 

4. 메인 앱에 모델 변경 인식시키기

settings.py

# mySpartaSns/settings.py에 추가하기
# 기본 모델을 user.UserModel로 지정
AUTH_USER_MODEL = 'user.UserModel'

 

5. makemigrations & migrate