2017-12-17 4 views
0

사실 저는 모든 사용자의 이름, 사용자 이름, 비밀번호, 나이, 성별 등과 같은 세부 정보를 저장해야하는 프로젝트에서 작업하고 있습니다.내 프로젝트 용 django 1.11에서 기본 사용자 모델을 사용해야합니까?

해당 웹 사이트에서 모든 사용자는 자신의 계정에 로그인하여 정보를 편집 할 수 있습니다.

그래서 나는 한 사용자에 대한 몇 가지 제한 필드를 저장 기본 사용자 모델을 사용하거나 새 모델을 장고

답변

0

기본 사용자 모델을 만들어야합니다. 당신은 생일, 전문 지식, 사용자 하나 하나를 연결해야합니다 모델을 사용자 프로필 작성해야 젠더와 같은 사용자의 기타 정보를 저장하려면 필드는

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) 
0

난 당신이 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' 
0

사실, 그것은 장고의 공식 documentation에서 언급 한 것. 먼저 AbstractUser 클래스를 사용하여 사용자 정의 사용자 모델을 상속한다는 것을 달성하고


AUTH_USER_MODEL = 'mycustom_user_app.MyCustomUser'을 언급하여 설정 파일에서 해당 사용자 지정 사용자를 가리키는하십시오.


지금 내부적으로 프로젝트에 대한 사용자 모델 인 모델을 알고, 당신은 사용자 정의 사용자의 모든 모델 관리자 (예를 들면. CREATE_USER 등)에 액세스 할 수 있습니다 장고. 그렇게하면 현재 모델 필드를 사용할 수 있으며 더 많은 필드를 필드에 추가 할 수 있습니다. 설명서에 언급 된대로 사용자 모델을 사용자 정의하고 사용자 정의 할 수있는 합법적 인 방법입니다.