繁体   English   中英

python manage.py createsuperuser有何用处?

[英]How is python manage.py createsuperuser useful?

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

python manage.py createsuperuser

这有什么用? 在什么情况下有必要?

django-docs (重点是我的):

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

创建一个超级用户帐户(具有所有权限的用户)。 如果您需要创建一个初始超级用户帐户,或者需要以编程方式为您的站点生成超级用户帐户 ,这将很有用。

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

python manage.py createsuperuser

除了亩的答案,超级用户是可以登录到管理页面并且有权在管理页面中添加,编辑,删除对象的用户。

每当您擦除数据库或将其部署到服务器时,您通常都希望能够设置一个“管理员”帐户,以能够登录到/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'以外'pass'其他值。

@hobs感谢您的出色回答。 它为寻找对我有用的终极答案指出了正确的方向。 以下是我的工作配置,唯一的区别是我为更高版本的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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM