Respostas:
python manage.py changepassword <user_name>
manage.py createsuperuser
criar um segundo superusuário e exibir a lista de Usuários para encontrar o original. Em seguida, efetue login como o original e exclua o novo superusuário.
python manage.py createsuperuser
criar outro superusuário, você poderá fazer login no admin e lembrar seu nome de usuário.Para conceder privilégios normais a um usuário, abra um shell python manage.py shell
e tente:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
Você pode tentar através do console:
python manage.py shell
use o seguinte script no shell
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
listará todos os superusuários do sistema. se você reconhecer seu nome de usuário da lista:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
e você define uma nova senha (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, adicione-o installed apps
e execute ./manage.py shell_plus
. A User
aula estará disponível e você poderá password-change
.
Você pode criar um novo superusuário com o createsuperuser
comando
Uma das melhores maneiras de recuperar o nome de usuário e a senha é visualizá-los e atualizá-los. O modelo de usuário fornece uma maneira perfeita de fazer isso.
Imprimir uma lista dos usuários Para usuários do Python 2, use o comando "usuários de impressão". Para usuários do Python 3, use o comando "print (users)". O primeiro usuário geralmente é o administrador.
Selecione o usuário que você deseja alterar sua senha, por exemplo
"user = users[0]"
Defina a senha
user.set_password('name_of_the_new_password_for_user_selected')
Salve a nova senha
"user.save()"
Inicie o servidor e efetue login usando o nome de usuário e a senha atualizada.
manage.py changepassword
é que você não está restrito a quais senhas você pode ou não pode usar - não muito semelhante à porcaria de nome de usuário. (Isto é, em meu ambiente dev Eu não estou defendendo senhas mais fracas Você deve sempre usar senhas fortes na prod...)
Você também pode ter respondido a uma pergunta incorreta e ter zero membros da equipe. Nesse caso, vá para o postgres:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Para corrigir, edite diretamente:
update auth_user set is_staff='true' where id=1;
Duas maneiras de fazer isso:
O changepassword
comando de gerenciamento :
(env) $ python manage.py changepassword <username>
Ou (que amplia algumas respostas, mas funciona para qualquer modelo de usuário estendido) usando o shell django-admin da seguinte maneira:
(env) $ python manage.py shell
Isso deve exibir o prompt de comando do shell da seguinte maneira:
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)
>>>
Então você deseja o seguinte:
>>> 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 que respondi a esta pergunta com esta resposta?
Porque, como mencionado, User = get_user_model()
funcionará para seus próprios User
modelos personalizados . Usar from django.contrib.auth.models import User
então User.objects.get(username='username')
pode gerar o seguinte erro:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Se você esqueceu de criar usuário administrador, primeiro crie um com o createsuperuser
comando ativado manage.py
e altere a senha.
Você pode tentar o seguinte:
1.Alterar senha do superusuário sem console
python manage.py changepassword <username>
2.Altere a senha do superusuário através do console
Caso você não conheça os nomes de usuário criados aqui. Você pode obter os usuários conforme descrito por @FallenAngel acima.
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
No entanto, no caso em que você criou seu modelo de usuário independente. Um caso simples é quando você deseja usar o email como um nome de usuário em vez do nome de usuário padrão. Nesse caso, seu modelo de usuário mora em algum lugar como your_accounts_app.models, a solução acima não funcionará. Nesse caso, você pode usar o 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
Se você esquecer seu administrador, precisará criar um novo usuário usando
python manage.py createsuperuser <username>
e para senha existe o comando da CLI changepassword
para o django mudar a senha do usuário
python manage.py changepassword <username>
OU
django-admin changepassword <username>
OU Execute este código no Django env
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
Outra coisa que vale a pena notar é definir o status do seu usuário is_staff
como ativo. Pelo menos, é isso que faz funcionar para mim. Para mais detalhes, criei outro superuser
como as pessoas explicaram acima. Então vou à tabela do banco de dados auth_user
e procuro esse nome de usuário para garantir que seu is_staff
sinalizador esteja definido como 1
. Isso finalmente me permitiu entrar no admin
site.
Crie um novo superusuário com o comando "python manage.py createduperuser". Faça o login como o novo superusuário. Clique no link 'usuários'. Em seguida, clique no usuário que você deseja excluir. clique em excluir usuário no final da página do formulário.
Nota - O processo acima fará alterações nos logs de atividades feitos por esse usuário específico.
python manage.py changepassword nome de usuário
usar
python manage.py dumpdata
então olhe para o final, você encontrará o nome de usuário
Eu penso: o melhor caminho Na linha de comando
python manage.py cria superusuário