pla*_*etp 5 python django bash django-users
我想通过Bash脚本自动创建Django用户.我发现这个片段几乎适合我的需要:
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" |\
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
如果用户已经存在,我如何修改它以使它成为一个nop?
使用一些QuerySet API方法和heredoc来提高可读性:
cat <<EOF | python manage.py shell
from django.contrib.auth import get_user_model
User = get_user_model() # get the currently active user model,
User.objects.filter(username='admin').exists() or \
User.objects.create_superuser('admin', 'admin@example.com', 'pass')
EOF
Run Code Online (Sandbox Code Playgroud)
请注意,您应该使用manage.py shell辅助函数来创建超级用户而不是通用yourapp/management/commands/ensure_adminuser.py方法,因为它需要正确设置密码.
PS作为@dragonfast在评论中提到,您可以python manage.py ensure_adminuser --username=admin --email=admin@example.com --password=pass用来获取对当前活动用户模型的引用,这比manage.py shell直接引用更灵活.
| 归档时间: |
|
| 查看次数: |
2654 次 |
| 最近记录: |