【发布时间】:2021-03-17 13:07:36
【问题描述】:
我创建了一个自定义用户模型,我可以使用 manage.py 创建新的超级用户,但是当我登录到管理面板时,我无法添加新用户(尽管 is_superuser 列在数据库中为 true)。
这是我的models.py:
class MyUser(AbstractUser):
email = models.EmailField(unique=True)
department = models.ForeignKey(to=Department, on_delete=models.CASCADE, null=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'password']
我也尝试了自定义 UserManager 但仍然无法正常工作:
class MyUserManager(UserManager):
def create_superuser(self, username, email=None, password=None, **extra_fields):
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
u = self._create_user(username, email, password, **extra_fields)
u.save()
return u
class MyUser(AbstractUser):
email = models.EmailField(unique=True)
department = models.ForeignKey(to=Department, on_delete=models.CASCADE, null=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'password']
objects = MyUserManager()
这是我的管理面板截图: screenshot
【问题讨论】:
-
这篇文章有帮助吗? stackoverflow.com/questions/20425862/…