27

我已经建立了一段时间的 Django 站点,但我从未启用 Django 管理员。

用户帐户在 LDAP 和 Django 上都注册了,但主记录基于 LDAP。所以我必须使用 LDAP 中的帐户作为超级用户。

当我启用 Django Admin 时,系统会提示我创建一个超级用户。我可以使用现有帐户(在 LDAP 和 Django db 上注册)作为超级用户吗?

如何?

4

2 回答 2

65

是的,但是您将通过 Django shell 来完成:

python manage.py shell

然后从数据库中获取您的用户:

from django.contrib.auth.models import User
user = User.objects.get(username="myname")
user.is_staff = True
user.is_admin = True
user.save()

退出 shell,该用户现在将成为管理员用户。

您还可以添加行

user.is_superuser = True

user.save()如果您希望或需要此用户成为超级用户并拥有所有可用权限,请在调用之前。

于 2012-07-05T03:43:24.623 回答
5

接受的答案在 Django 3 上产生了一个错误:

AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'

从 Django 外壳:

python manage.py shell

运行这个:

from django.contrib.auth import get_user_model
User = get_user_model()
user = User.objects.get(username="myname")
user.is_staff = True
user.is_admin = True
user.is_superuser = True
user.save()
于 2020-03-04T17:12:18.853 回答