我是Django的新手。我找到了这段代码
python manage.py createsuperuser
这有用吗?在什么样的情况下是必要的?
答案 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
再次感谢,希望其他人会发现它有用