django 09 사용자모델 수정하기

Grace Goh·2022년 10월 8일
0

Django

목록 보기
10/32

기본 auth_user 합치기

  • auth_user : django 기본 제공 모델

  • my_user : 내가 만든 모델

class Rafa:
	def tennis:
    	return 'tennis'
    def photo:
    	return 'photo'
    
class Grace:
	def happy:
    	return 'happy'

클래스 Rafa에는 tennis 기능과 foto 기능이 있고
클래스 Grace에는 happy 기능이 있다.

만약 Grace가 Rafa의 기능을 사용하고 싶다면

class Grace(Rafa):
	def photo:
    	return 'photo'

모델을 수정할 때는 서버를 중지하는 게 좋다.

# user/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser # 추가. django 기본 유저모델


# 위 AbstractUser의 기능을 UserModel에서 쓰겠다고 선언
class UserModel(AbstractUser):
    class Meta:
        db_table = "my_user" # 내가 만든 db_table의 이름

    bio = models.CharField(max_length=256, default='')

위 class의 의미는, 사용자모델로
(django 기본 모델을 사용하면서) bio를 추가한다.


변경내용 settings.py 알려주기

# mySpartaSns/settings.py에 다음을 붙여넣기

AUTH_USER_MODEL = 'user.UserModel'

이제 django는 AUTH_USER_MODEL = 'user.UserModel'을 기본 사용자모델로 인식한다.
user 앱 내의 UserModel 클래스로 변경한다는 의미.

이것을 settings.py에 공지한다.


변경내용 DB에 알려주기

python manage.py makemigrations

변경내용 DB에 적용하기

python manage.py migrate
profile
Español, Inglés, Coreano y Python

0개의 댓글