我已经在Django中创建了一个名为“ Agent”的自定义用户模型。 命令行允许我成功创建一个超级用户,但是即使所有凭据正确,管理员页面也不允许我访问。
我的应用包含在INSTALLED_APPS下,我的AUTH_USER_MODEL = Audit.Agent 我已经在admin.py下注册了我的模型,但是什么也没有。
我可能忘记了一些小东西,但仍然找不到。 任何方向的指南都是极有价值的。
提前谢谢
类AgentManager(BaseUserManager): def create_user(自身,agent_email,agent_name,validation_date,company_name,password = None,** extra_fields): 如果不是agent_email: 引发ValueError(“必须设置电子邮件”) 电子邮件= self.normalize_email(agent_email) 代理= self.model(agent_email = agent_email, agent_name =代理名称, company_name = company_name, validation_date = validation_date, ** extra_fields) agent.save(using = self._db) 退货代理
def create_superuser(self, agent_email, agent_name, validation_date, company_name, password, **extra_fields):
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
if extra_fields.get('is_staff') is not True:
raise ValueError('Superuser must have is_staff=True.')
if extra_fields.get('is_superuser') is not True:
raise ValueError('Superuser must have is_superuser=True.')
return self.create_user(agent_email,
agent_name,
validation_date,
company_name,
password=password,
**extra_fields)
类代理(AbstractBaseUser,PermissionsMixin): agent_email = models.EmailField(unique = True,verbose_name ='代理电子邮件') agent_name = models.CharField(max_length = 100,verbose_name ='代理商名称') validation_date = models.DateField(默认= timezone.now,verbose_name ='验证日期') company_name = models.CharField(max_length = 150,verbose_name ='Company name') is_staff = models.BooleanField(默认= False) is_superuser = models.BooleanField(default = False)
USERNAME_FIELD = 'agent_email'
REQUIRED_FIELDS = ('agent_name', 'validation_date', 'company_name')