나는 장고 1.5로 웹 응용 프로그램을 만들고 있습니다. 사용자 정의 UserManager를 사용하여 사용자 정의 사용자 모델을 사용하고 있습니다. 공식 Django 문서의 지침과 예제를 따랐습니다.장고 사용자 정의 사용자 모델 및 usermanager
이제 UserManager.create_user(...)
을 통해 새 사용자를 만들려고하는데 NoneType 오류가 발생했습니다. UserManager의 특성 모델이 없음 유형 인 것으로 보입니다. User 모델에서 UserManager를 올바로 설정하고 있다고 생각합니다 (objects = UserManager()
)
정말 실수를 저지르고 있습니다. 부스 코딩 파트너와 나는 장고를 처음 사용합니다. 어쩌면 우리를 도울 수 있습니다.
class UserManager(BaseUserManager):
"""
create a new user
@param username: the name for the new user
@param password: the password for the new user. if none is provided a random password is generated
@param person: the corresponding person object for this user
"""
def create_user(self, username, person, password=None):
if not username:
raise ValueError('User must have a valid username')
user = self.model(username=username, created=datetime.now(), must_change_password=True, deleted=False, person=person)
user.set_password(password)
user.save(using=self._db)
return user
class User(AbstractBaseUser):
## the id of the user. unique through the application
user_id = models.AutoField(primary_key=True)
## the name of the user. unique through the application
username = models.CharField(max_length=32, unique=True)
## the date when the user was created
created = models.DateTimeField()
## iff this is true the user must set a new password at next login
must_change_password = models.BooleanField(default=True)
## iff true the user is marked as deleted and can not login
deleted = models.BooleanField(default=False)
## iff true the user is admin and has all permissions. use with care!
is_admin = models.BooleanField(default=False)
## reference to the person entity that is linked to this specific user
person = models.ForeignKey(Person)
## indicates if the user is active or not
active = models.BooleanField(default=True)
## define the user manager class for User
objects = UserManager()
# necessary to use the django authentication framework: this field is used as username
USERNAME_FIELD = 'username'
난 당신이 UserManager.create_user(...)
를 호출해서는 안 새 사용자를 만들려면 UserManager
왜이 방법이 나쁜지 대답 해주세요. – deathangel908