Django/Django study
[Django] User Custom
카늬
2022. 11. 24. 21:55
User에 닉네임,이메일,이름 속성을 추가시켜줄것이다
#models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
#auth의 유저 상속
class User(AbstractUser):
"""
닉네임
이름
이메일
"""
nickname = models.CharField(max_length=15,unique=True,null=True)
name = models.CharField(max_length=15)
email = models.EmailField()
USERNAME_FIELD: 'nickname'
class Meta:
db_table = "User"
def __str__(self):
return self.email
User 클레스에 AbstractUser를 상속받는 것 으로 기존 Django에서 제공하던 User의 속성을 그대로 사용하는것과 동시에 새로운 속성을 추가하는 것이 가능하다.
이후 Settings.py파일에
#settings.py
#커스텀 유저모델 사용
AUTH_USER_MODEL = 'common.User'#[APP이름.Model이름]
를 추가해 준다. 이는 로그인시 기존에 Django에서 제공하던 User를 사용하는 것이 아닌 우리가 만든 Model을 사용하겠다는 뜻이다.
makemigrations를 해주면 끝이다
기존에 DB를 사용하던 프로젝트 일경우 기존의 데이터와 충돌이 있을 수 있기 때문에 DB를 제거하고 makemigrations 해주는 것이 좋다.
필자는 sqlite를 사용중이여서 db.sqlite3파일을 지워주었다.