Python 使用自定义模型验证在管理员中登录
因此,我在django中使用名为accounts的模型进行身份验证,而不是使用默认用户。一切正常,但当我尝试登录django管理员时,它不允许我登录,它说用户不正确,尽管从控制台创建了一个名为“manage.py createsuperuser”的用户 有什么想法吗? 我的代码 models.pyPython 使用自定义模型验证在管理员中登录,python,django,django-admin,django-authentication,Python,Django,Django Admin,Django Authentication,因此,我在django中使用名为accounts的模型进行身份验证,而不是使用默认用户。一切正常,但当我尝试登录django管理员时,它不允许我登录,它说用户不正确,尽管从控制台创建了一个名为“manage.py createsuperuser”的用户 有什么想法吗? 我的代码 models.py class AccountsManager(BaseUserManager): def create_superuser(self, email, username, password):
class AccountsManager(BaseUserManager):
def create_superuser(self, email, username, password):
user = self.create_user(email=email,
password=password,
)
user.is_admin = True
user.save(using=self._db)
return user
class accounts(AbstractBaseUser):
username = models.CharField(max_length=50, null=True, unique=True)
name = models.CharField(max_length=50, null=True)
lastname = models.CharField(max_length=50, null=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
def get_full_name(self):
return self.email
def get_short_name(self):
return self.email
def __str__(self): # __unicode__ on Python 2
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
objects = AccountsManager()
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email']
解决了,错误是我没有注册用户 改变 为了
class AccountsManager(BaseUserManager):
def create_superuser(self, email, username, password):
user = self.create_user(email=email,
password=password,
)
user.is_admin = True
user.save(using=self._db)
return user
class accounts(AbstractBaseUser):
username = models.CharField(max_length=50, null=True, unique=True)
name = models.CharField(max_length=50, null=True)
lastname = models.CharField(max_length=50, null=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
def get_full_name(self):
return self.email
def get_short_name(self):
return self.email
def __str__(self): # __unicode__ on Python 2
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
objects = AccountsManager()
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email']
user = self.create_user(email=email,
password=password,
)
user = self.create_user(email=email,
password=password,
username=username
)