自分のユーザモデルとusermanagerモデルを作成しました。次に、スーパーユーザーを作成し、「スーパーユーザーが正常に作成されました」を取得しようとしました。しかし、すべての情報でログインしようとすると、失敗しました。次に、作成中にパスワードを印刷するコード行を追加しました。私は必要なフィールドから1つの必要なフィールドを削除した場合、私が得る、私のコード django - カスタムユーザモデルの作成後にログインできない
- 必須フィールド:結果は私のpassword.Iは、サーバーがカスタムモデルを使用しているかなり確信しているためと一致します期待されている「
TypeError: create_superuser() missing 1 required positional argument:
」に関するエラー、それは私がデータベース内のユーザーを取得するために.count()メソッドを使用 - 正しい方法であると私は1
ここに私のコードです:
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で与えるのだろうか? –
と入力フィールドにユーザ名、メールアドレス、パスワードを含めないのはなぜですか?彼らは必要なので? –
ここでは、[Pythonでのkwargsの理解](https://stackoverflow.com/questions/1769403/understanding-kwargs-in-python)... [source](https:// github .com/django/django/blob/master/django/contrib/auth/models.py#L134-L161)を使って 'extra_fields'が必要な理由を調べてください。 –