无法登录django管理员

问题描述 投票:0回答:1

为什么当 is_staff = false 和 is_superuser = true 时我仍然无法登录 django 管理员仪表板。

我可以做一些自定义操作,以便即使 is_staff 为 false,is_superuser 仍然可以登录吗?有人可以帮助我吗?

django django-admin
1个回答
0
投票

因为管理员要求

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
也没有多大意义,因为超级用户通常比员工“高”一级。

© www.soinside.com 2019 - 2024. All rights reserved.