我尝试创建一个运行syncdb的批处理文件来创建数据库文件,然后使用用户名" admin"创建一个超级用户。和密码" admin"。
到目前为止我的代码:
python manage.py syncdb --noinput
python manage.py createsuperuser --username admin --email admin@exmaple.com
python manage.py runserver
现在提示我输入密码,然后确认密码。我是否可以使用同一批处理文件,另一个批处理文件中的命令输入此信息,或者这是不可能的?
答案 0 :(得分:14)
由于您似乎无法使用echo ''stuff | cmd
提供密码,我看到的唯一方法是在Python中创建密码:
python manage.py syncdb --noinput
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | python manage.py shell
python manage.py runserver
答案 1 :(得分:1)
答案 2 :(得分:0)
从Django 3.0开始,您可以使用默认的createsuperuser --noinput
命令并将所有必填字段(包括密码)设置为环境变量DJANGO_SUPERUSER_PASSWORD
,DJANGO_SUPERUSER_USERNAME
,DJANGO_SUPERUSER_EMAIL
。 --noinput
标志是必需的。
这来自原始文档:https://docs.djangoproject.com/en/3.0/ref/django-admin/#django-admin-createsuperuser
我刚刚检查了它-可以。现在,您可以轻松导出这些环境变量,并将createsuperuser
添加到脚本和管道中。
答案 3 :(得分:0)
如果按照惯例,您正在使用自定义用户(在本例中为CustomUser)
stdlib