python manage.py如何创建超级用户有用吗?

时间:2014-12-14 18:31:35

标签: python django

我是Django的新手。我找到了这段代码

python manage.py createsuperuser

这有用吗?在什么样的情况下是必要的?

4 个答案:

答案 0 :(得分:5)

来自django-docs(强调我的):

  

此命令仅在安装了Django的身份验证系统(django.contrib.auth)时可用。

     

创建超级用户帐户(拥有所有权限的用户)。如果您需要创建初始超级用户帐户,或者您需要以编程方式为您的网站生成超级用户帐户,这非常有用。

     

以交互方式运行时,此命令将提示输入新超级用户帐户的密码。以非交互方式运行时,不会设置密码,并且在为其手动设置密码之前,超级用户帐户将无法登录。

答案 1 :(得分:3)

python manage.py createsuperuser

除了mu的答案之外,超级用户是可以登录管理页面并且可以通过管理页面添加,编辑,删除对象的人员。

答案 2 :(得分:1)

每当您擦除数据库或部署到服务器时,您通常都希望能够设置“admin”帐户,以便能够像这样登录/admin/界面:

python manage.py createsuperuser -u admin -e admin@example.com --noinput
python manage.py changepassword admin

不幸的是,通常您希望自己的部署是自动的,并且@mu指出您仍然必须以交互方式设置密码。但是,如果要自动执行该过程,您可以自己将记录添加到数据库中:

echo "from django.contrib.auth.models import User" > createadmin.py
echo "User.objects.create_superuser('dan', 'dan@email.io', 'pass')" >> createadmin.py
python manage.py shell < createadmin.py

当然不要忘记将设置密码设置为'pass'以外的其他内容。

答案 3 :(得分:1)

@hob感谢您的出色回答。它为寻找对我有用的终极答案指出了正确的方向。下面是我的工作配置,唯一的区别是我为更高版本的Django修改了用户导入

from django.contrib.auth import get_user_model
User = get_user_model()
User.objects.create_superuser('adminuser', 'dev@email.io', 'password')

我运行的命令是;

python3 manage.py shell < /opt/admin.py

我需要这个用于Dockerfile配置,下面是该行在Dockerfile行中的外观

RUN \
    python3 ./manage.py migrate && \
    python3 manage.py shell < adminuser.py

再次感谢,希望其他人会发现它有用