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파일을 지워주었다.