Estoy usando Django 3.2 y el módulo de autenticación. Me gustaría crear un superusuario en la línea de comandos (para su eventual inclusión en un script acoplable). Cuando intento esto
$ python manage.py createsuperuser --username=joe --email=joe@example.comMe pide una contraseña. El módulo no parece admitir un argumento "--password"...
$ python manage.py createsuperuser --username=joe --email=joe@example.com --password=password usage: manage.py createsuperuser [-h] [--username USERNAME] [--noinput] [--database DATABASE] [--email EMAIL] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] [--force-color] [--skip-checks] manage.py createsuperuser: error: unrecognized arguments: --password=password¿Hay alguna manera de que pueda crear automáticamente un usuario sin intervención manual?
Esto se hace por razones de seguridad: por lo general, los comandos de shell se escriben en un archivo de historial y, si pasa la contraseña como parámetro, un hacker podría ver el historial y obtener la contraseña del superusuario. Puede leer el contenido de la variable DJANGO_SUPERUSER_PASSWORD para establecer la contraseña.
Por lo tanto, puede establecer la contraseña con:
DJANGO_SUPERUSER_PASSWORD=somepassword python manage.py createsuperuser --no-input --username=joe --email=joe@example.com Sin embargo, recomendaría encarecidamente no configurar DJANGO_SUPERUSER_PASSWORD en el archivo de script, sino definir la variable de entorno en otro lugar.