Cómo restablecer la contraseña de administrador de Django?


Estoy usando Django (versión 1.3) y he olvidado tanto el nombre de usuario como la contraseña de administrador. Cómo restablecer ambos?

Y ¿es posible convertir a un usuario normal en administrador y luego eliminar el estado de administrador?

 319
Author: frlan, 2011-06-15

14 answers

manage.py changepassword <user_name>

Véase docs

 538
Author: JamesO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-04 14:58:14
  1. python manage.py createsuperuser creará otro superusuario, usted será capaz de iniciar sesión en admin y rememder su nombre de usuario.
  2. Sí, por qué no.

Para dar privilegios a un usuario normal, abra un shell con python manage.py shell e intente:

from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
 144
Author: DrTyrsa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-27 19:26:30

Puede probar a través de la consola:

python manage.py shell

Luego use el siguiente script en el shell

from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)

Le mostrará una lista de todos los superusuarios en el sistema. si reconoce su nombre de usuario de la lista:

usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()

Y se establece una nueva contraseña (:

 88
Author: FallenAngel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-07 07:43:07

Puede crear un nuevo superusuario con createsuperuser comando.

 19
Author: Aldarund,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-06 20:46:52

Esta es una muy buena pregunta.

Python manage.py changepassword user_name

Ejemplo: -

python manage.py changepassword mickey
 9
Author: anand24,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-13 10:31:01

La nueva configuración debe ejecutarse primero python manage.py createsuperuser para crear usuario. Parece que no hay una contraseña de nombre de usuario predeterminada para iniciar sesión en admin.

 9
Author: user3526,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-18 11:31:07

También puede haber respondido a una pregunta de configuración incorrecta y tener cero miembros del personal. En cuyo caso diríjase a postgres:

obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id           | 1
is_superuser | f
is_staff     | f
...

Para arreglar, edite directamente:

update auth_user set is_staff='true' where id=1;
 4
Author: Bryce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-06 20:45:40

Una de las mejores formas de recuperar el nombre de usuario y la contraseña es verlos y actualizarlos. El Modelo de Usuario proporciona una manera perfecta de hacerlo.

En este caso, estoy usando Django 1.9

  1. Navegue a su directorio raíz es decir, donde usted "manage.py" el archivo se encuentra usando su consola u otra aplicación como Git.
  2. Recuperar la shell de Python usando el comando "python manage.py shell".
  3. Importe el Modelo User escribiendo el siguiente comando "de django.contrib.auth.usuarios de importación de modelos"
  4. Obtenga todos los usuarios escribiendo el siguiente comando "usuarios = Usuario.objeto.all ()"
  5. Imprimir una lista de los usuarios Para los usuarios de Python 2 utilice el comando " imprimir usuarios" Para los usuarios de Python 3 utilice el comando " imprimir (usuarios)" El primer usuario suele ser el administrador.

  6. Seleccione el usuario que desea cambiar su contraseña, por ejemplo,

    "user = users[0]"

  7. Establecer la contraseña

    user.set_password('name_of_the_new_password_for_user_selected')

  8. Guardar el nuevo contraseña

    "user.save()"

Inicie el servidor e inicie sesión con el nombre de usuario y la contraseña actualizada.

 4
Author: Stephen Mwangi Wanjohi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-28 11:45:48

Si olvidó crear usuario administrador primero construya uno con el comando createsuperuser en manage.py luego cambie la contraseña.

 3
Author: rapid2share,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-21 11:28:28

Puedes probar esto:

1.Cambiar la contraseña de superusuario sin consola

python manage.py changepassword <username>

2.Cambiar la contraseña del superusuario a través de la consola

introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

 3
Author: Mr Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-30 20:24:36

En caso de que no conozca los nombres de usuario creados aquí. Puede obtener los usuarios como se describe en @FallenAngel anteriormente.

python manage.py shell 
from django.contrib.auth.models import User
usrs = User.objects.filter(is_superuser=True)
#identify the user
your_user = usrs.filter(username="yourusername")[0]
#youruser = usrs.get(username="yourusername")
#then set the password

Sin embargo, en el caso de que haya creado su modelo de usuario independiente. Un caso simple es cuando desea utilizar el correo electrónico como nombre de usuario en lugar del nombre de usuario predeterminado. En cuyo caso su modelo de usuario vive en algún lugar como your_accounts_app.modelos entonces la solución anterior no funcionará. En este caso, puede usar el método get_user_model

from django.contrib.auth import get_user_model 
super_users = get_user_model().objects.filter(is_superuser=True)
#proceed to get identify your user
# and set their user password
 2
Author: unlockme,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-01 16:52:33

Otra cosa que vale la pena señalar es establecer el estado de su usuario is_staff como activo. Al menos, eso es lo que hace que funcione para mí. Para más detalles, creé otro superuser como la gente explicó anteriormente. Luego voy a la tabla de la base de datos auth_user y busco ese nombre de usuario para asegurarme de que su bandera is_staff esté establecida en 1. Eso finalmente me permitió iniciar sesión en el sitio admin.

 1
Author: user1330974,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-14 19:32:57

Python manage.py nombre de usuario de changepassword

 0
Author: Basant Rules,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-02 09:19:04

Crear un nuevo superusuario con el comando "python manage.py createsuperuser". Inicie sesión como el nuevo superusuario. Haga clic en el enlace' usuarios'. A continuación, haga clic en el usuario que desea eliminar. haga clic en eliminar usuario al final de la página del formulario.

Nota: El proceso anterior realizará cambios en los registros de actividad realizados por ese usuario en particular.

 0
Author: Ishan Dixit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-03 14:59:50