내 자신의 사용자 모델 및 usermanager 모델을 작성했습니다. 그런 다음 수퍼 유저를 만들고 "수퍼 유저가 성공적으로 생성되었습니다." 그러나 모든 정보를 사용하여 로그인하려고 시도했지만 실패했습니다. 그런 다음 암호를 작성하는 동안 한 줄의 코드를 추가하여 작성했습니다. 내가 필요한 분야에서 일 개 필요 필드를 제거하면django - 사용자 정의 사용자 모델을 작성한 후 로그인 할 수 없습니다.
- 필요한 필드 내 코드
- 에 따라 변화 내가 얻을 : 내 password.I이 때문에 서버가 사용자 정의 모델을 사용하고 확신과 결과는 일치 기대된다 "
TypeError: create_superuser() missing 1 required positional argument:
"에 대한 오류, 내가 데이터베이스에서 사용자를 얻을 수 .count() 메소드를 사용 - 올바른 방법으로 내가 한
내 코드는 다음과 같습니다.
class UserManager(BaseUserManager):
def create_user(self, username,email,password=None):
if not email:
raise ValueError("Users must have an email address")
if not password:
raise ValueError("Users must have a password")
user_obj = self.model(
email=self.normalize_email(email)
)
user_obj.set_password(password)
user_obj.username = username
user_obj.save(using=self.db)
return user_obj
def create_superuser(self, username, email, password):
print("Super user created, with password" + password)
return self.create_user(
username=username,
email=email,
password=password,
)
class User(AbstractBaseUser):
username = models.CharField(max_length=255, unique=True)
email = models.EmailField(blank=True, unique=True)
created_time = models.TimeField(auto_now=True)
active = models.BooleanField(default=False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
objects = UserManager()
아무도 내게 아이디어를 줄 수 있다면 정말 고마워. 완전히 길을 잃는다.
그 배열을 extra_fields입니다시겠습니까? –
그리고 입력란에 사용자 이름, 이메일, 비밀번호 입력란을 포함시키지 않으시겠습니까? 그들은 필요하기 때문에? –
아니, 여기에 [이해 파이썬에서 kwargs] (https://stackoverflow.com/questions/1769403/understanding-kwargs-in-python) ... 나는 당신이 [소스] (https : // github .com/django/django/blob/master/django/contrib/auth/models.py # L134-L161)를 사용하여'extra_fields'가 필요한 이유를 확인하십시오. –