首次启用管理员时,我可以将现有用户用作Django管理员吗?

时间:2012-07-05 03:06:40

标签: django django-admin

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

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

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

如何?

2 个答案:

答案 0 :(得分:42)

是的,但你会通过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()之前,如果您希望或需要此用户为超级用户并拥有所有可用权限。

答案 1 :(得分:0)

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

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

在Django shell中:

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()