为什么当 is_staff = false 和 is_superuser = true 时我仍然无法登录 django 管理员仪表板。
我可以做一些自定义操作,以便即使 is_staff 为 false,is_superuser 仍然可以登录吗?有人可以帮助我吗?
因为管理员要求
is_staff
是 True
,事实上,在 Django 文档中,我们读到:
如果您需要创建用户登录,请使用
命令。 默认情况下,登录管理员需要用户将createsuperuser
属性设置为is_staff
。True
这是 在
AdminAuthenticationForm
中用 : 检查
def confirm_login_allowed(self, user): super().confirm_login_allowed(user) if not user.is_staff: raise ValidationError( self.error_messages["invalid_login"], code="invalid_login", params={"username": self.username_field.verbose_name}, )
通常,
is_superuser=True
和is_staff=False
也没有多大意义,因为超级用户通常比员工“高”一级。