在这里,我创建一个用户管理器创建身份验证后端,但我在登录期间遇到错误,我使用AbstractBaseUser创建一个用户:
models.py
class Manager(AbstractBaseUser, PermissionsMixin):
managing_director = models.ForeignKey(ManagingDirector)
manager_name = models.CharField(max_length=50)
manager_email = models.CharField(max_length=50,null=True)
manager_mobile = models.CharField(max_length=50,null=True)
manager_address = models.TextField()
username = models.CharField(max_length=50,unique=True)
manager_status = models.BooleanField(default=True)
is_staff = models.BooleanField(default=True)
class Meta:
verbose_name = _('Manager')
verbose_name_plural = _('Managers')
def __unicode__(self):
return self.manager_name
def get_full_name(self):
return self.manager_name
def get_short_name(self):
return self.manager_name
Run Code Online (Sandbox Code Playgroud)
我需要提供登录管理器,所以我创建一个backends.py来提供
backends.py
from staffs.models import Manager
class ManagerBackend:
# Create an authentication method
# This is called by the standard Django login procedure
def authenticate(self, username=None, password=None):
try:
# Try to …Run Code Online (Sandbox Code Playgroud)