Respuestas:
python manage.py changepassword <user_name>
manage.py createsuperuser
crear un segundo superusuario y luego ver la lista de Usuarios para encontrar el original. Luego inicie sesión como el original y elimine el nuevo superusuario.
python manage.py createsuperuser
creará otro superusuario, podrá iniciar sesión en admin y recordar su nombre de usuario.Para otorgar privilegios de usuario normales, 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()
user.is_staff = True
Puedes probar a través de la consola:
python manage.py shell
luego use el siguiente script en shell
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
te listará a todos los súper usuarios 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 estableces una nueva contraseña (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, agrégalo installed apps
y ejecuta ./manage.py shell_plus
. La User
clase estará disponible y tú puedes password-change
.
Puede crear un nuevo superusuario con createsuperuser
comando.
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.
Imprima una lista de los usuarios. Para los usuarios de Python 2, use el comando "usuarios de impresión". Para los usuarios de Python 3, use el comando "imprimir (usuarios)". El primer usuario suele ser el administrador.
Seleccione el usuario al que desea cambiar su contraseña, p. Ej.
"user = users[0]"
Establecer la contraseña
user.set_password('name_of_the_new_password_for_user_selected')
Guarda la nueva contraseña
"user.save()"
Inicie el servidor e inicie sesión con el nombre de usuario y la contraseña actualizada.
manage.py changepassword
es que no está restringido a las contraseñas que puede o no puede usar, ya no es demasiado similar a la basura del nombre de usuario. (Esto está en mi entorno de desarrollo. No estoy abogando por contraseñas más débiles. Siempre debes usar contraseñas seguras en prod.)
También es posible que haya respondido mal una pregunta de configuración y que no tenga ningún miembro del personal. En cuyo caso, dirígete 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;
Dos formas de hacer esto:
El changepassword
comando de gestión :
(env) $ python manage.py changepassword <username>
O (que se expande con algunas respuestas, pero funciona para cualquier modelo de Usuario extendido) usando el shell django-admin de la siguiente manera:
(env) $ python manage.py shell
Esto debería mostrar el símbolo del sistema de la siguiente manera:
Python 3.7.2 (default, Mar 27 2019, 08:44:46)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
Entonces querrías lo siguiente:
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='admin@hug.com')
>>> user.set_password('new password')
>>> user.save()
>>> exit()
NB ¿Por qué he respondido esta pregunta con esta respuesta?
Porque, como se mencionó, User = get_user_model()
funcionará para sus propios User
modelos personalizados . Usar from django.contrib.auth.models import User
entonces User.objects.get(username='username')
puede arrojar el siguiente error:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Si olvidó crear un usuario administrador, primero cree uno con el createsuperuser
comando activado y manage.py
luego cambie la contraseña.
Puedes probar esto:
1.Cambie la contraseña del superusuario sin consola
python manage.py changepassword <username>
2.Cambie la contraseña del superusuario a través de la consola
En caso de que no conozca los nombres de usuario tal como se crean aquí. Puede obtener los usuarios como se describe anteriormente en @FallenAngel.
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 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.models, la solución anterior no funcionará. En este caso, puede utilizar 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
si olvida a su administrador, entonces necesita crear un nuevo usuario usando
python manage.py createsuperuser <username>
y para la contraseña hay un comando CLI changepassword
para que django cambie la contraseña del usuario
python manage.py changepassword <username>
O
django-admin changepassword <username>
O Ejecute este código en Django env
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
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 is_staff
bandera esté configurada 1
. Eso finalmente me permitió iniciar sesión en el admin
sitio.
Cree un nuevo superusuario con el comando "python manage.py createduperuser". Inicie sesión como el nuevo súper usuario. Haga clic en el enlace 'usuarios'. Luego 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.
python manage.py changepassword nombre de usuario
utilizar
Python manage.py dumpdata
luego mira al final encontrarás el nombre de usuario
Creo que la mejor manera en la línea de comando
python manage.py createuperuser