es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo autenticar un usuario de Django en la línea de comandos sin tener que ingresar manualmente la contraseña?

Estoy usando Django 3.2 y el módulo de autenticación. Me gustaría crear un superusuario desde la línea de comandos (para eventual inclusión en un script de Docker). Cuando intento esto:

$ python manage.py createsuperuser --username=joe --email=joe@example.com

Se me solicita una contraseña. El módulo parece no admitir el 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 auto-crear un usuario sin intervención manual?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay forma de crear automáticamente un usuario sin intervención manual en el módulo de autenticación de Django. El comando createsuperuser está diseñado para solicitar al usuario una contraseña para asegurarse de que sea segura y no se pueda adivinar fácilmente. Sin embargo, existen métodos alternativos para automatizar la creación de usuarios que no implican el uso del comando createsuperuser.

    Una opción es crear un comando personalizado de gestión que cree un superusuario de forma programática. Este comando se puede incluir en el script de Docker y ejecutarse durante el proceso de construcción del contenedor. En el comando, puedes establecer directamente en el código el nombre de usuario, correo electrónico y contraseña sin necesidad de la entrada del usuario.

    Otra opción es utilizar el ORM (Mapeo Objeto-Relacional) de Django para crear un superusuario en tu código. Puedes escribir un script que importe el modelo User del módulo de autenticación de Django, establezca los campos necesarios y guarde el usuario en la base de datos. Este script se puede ejecutar como parte de tu script de Docker para crear automáticamente el superusuario.

    En ambos casos, es importante asegurarse de que la contraseña sea segura y no se pueda adivinar fácilmente. Puedes utilizar el PasswordHasher integrado de Django para cifrar la contraseña antes de guardarla en la base de datos.

Comments are closed.