사실 저는 모든 사용자의 이름, 사용자 이름, 비밀번호, 나이, 성별 등과 같은 세부 정보를 저장해야하는 프로젝트에서 작업하고 있습니다.내 프로젝트 용 django 1.11에서 기본 사용자 모델을 사용해야합니까?
해당 웹 사이트에서 모든 사용자는 자신의 계정에 로그인하여 정보를 편집 할 수 있습니다.
그래서 나는 한 사용자에 대한 몇 가지 제한 필드를 저장 기본 사용자 모델을 사용하거나 새 모델을 장고
사실 저는 모든 사용자의 이름, 사용자 이름, 비밀번호, 나이, 성별 등과 같은 세부 정보를 저장해야하는 프로젝트에서 작업하고 있습니다.내 프로젝트 용 django 1.11에서 기본 사용자 모델을 사용해야합니까?
해당 웹 사이트에서 모든 사용자는 자신의 계정에 로그인하여 정보를 편집 할 수 있습니다.
그래서 나는 한 사용자에 대한 몇 가지 제한 필드를 저장 기본 사용자 모델을 사용하거나 새 모델을 장고
기본 사용자 모델을 만들어야합니다. 당신은 생일, 전문 지식, 사용자 하나 하나를 연결해야합니다 모델을 사용자 프로필 작성해야 젠더와 같은 사용자의 기타 정보를 저장하려면 필드는
first_name, last_name, email, password, groups, user_permissions, is_staff, is_active, is_superuser, last_login, date_joined
있습니다.
예 :
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OnetoOneField(User)
birthday = models.DateTimeField(default=datetime.datetime.now)
skills = models.CharField(max_length=128)
난 당신이 AbstractUser
를 서브 클래스 좋습니다. 이 옵션은 Django의 User
필드가 좋지만 추가 필드가 필요한 경우에 적합합니다. Django documentation도 어쨌든이 작업을 수행 할 것을 권장합니다. 새 프로젝트를 시작하는 경우
, 매우 기본 사용자 모델은 당신 충분 경우에도 사용자 정의 사용자 모델을 설정하는 것이 좋습니다. 이 모델은 필요할 경우 나중에 그것을 사용자 정의 할 수 있습니다 기본 사용자 모델과 동일하게 동작하지만 :
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass or additional fields here ...
작성하거나 실행하기 전에
또한이 모델 를 가리 키도록해야 설정에있는 마이그레이션 : 당신이 사용자에 대한 사용자 정의 사용자 모델을 만들려면
AUTH_USER_MODEL = 'yourapp.User'
사실, 그것은 장고의 공식 documentation에서 언급 한 것. 먼저 AbstractUser 클래스를 사용하여 사용자 정의 사용자 모델을 상속한다는 것을 달성하고
AUTH_USER_MODEL = 'mycustom_user_app.MyCustomUser'을 언급하여 설정 파일에서 해당 사용자 지정 사용자를 가리키는하십시오.
지금 내부적으로 프로젝트에 대한 사용자 모델 인 모델을 알고, 당신은 사용자 정의 사용자의 모든 모델 관리자 (예를 들면. CREATE_USER 등)에 액세스 할 수 있습니다 장고. 그렇게하면 현재 모델 필드를 사용할 수 있으며 더 많은 필드를 필드에 추가 할 수 있습니다. 설명서에 언급 된대로 사용자 모델을 사용자 정의하고 사용자 정의 할 수있는 합법적 인 방법입니다.