Как сбросить пароль администратора Django?

Я использую Django (версия 1.3) и забыл имя пользователя и пароль администратора. Как сбросить оба?

и можно ли сделать обычного пользователя администратором, а затем удалить статус администратора?

14 ответов


manage.py changepassword <user_name>

см. docs


  1. python manage.py createsuperuser создаст еще один суперпользователь, вы сможете войти в admin и запомнить свое имя пользователя.
  2. Да, почему бы и нет.

чтобы дать обычные права пользователя, откройте оболочку с python manage.py shell и попробовать:

from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()

вы можете попробовать через консоль:

python manage.py shell

затем используйте следующий скрипт в Shell

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

будет список всех супер пользователей в системе. если вы узнаете имя пользователя yur из списка:

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

и вы устанавливаете новый пароль (:


вы можете создать новый суперпользователь с помощью createsuperuser.


Это очень хороший вопрос.

python manage.py changepassword имя_пользователя

пример:

python manage.py changepassword mickey

новое настройка должны первый запуск python manage.py createsuperuser создать пользователя. Похоже, нет пароль имя Пользователя по умолчанию для входа в админку.


вы также можете ответить на вопрос установки неправильно и иметь нулевых сотрудников. В этом случае направляйтесь к postgres:

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

чтобы исправить, отредактируйте напрямую:

update auth_user set is_staff='true' where id=1;

один из лучших способов получить имя пользователя и пароль, чтобы просмотреть и обновить их. Модель пользователя обеспечивает идеальный способ сделать это.

в этом случае я использую Django 1.9

  1. перейдите в корневой каталог i, e. где ты ...manage.py " файл находится с помощью консоли или другого приложения, такого как Git.
  2. получить оболочку Python с помощью команды "python manage.py shell".
  3. импортируйте модель пользователя, введя выполнить следующую команду - из Джанго.ВНО.автор.модели импорт пользователя"
  4. получить всех пользователей, введя следующую команду "пользователь = пользователь.объекты.all ()"
  5. распечатать список пользователей Для пользователей Python 2 используйте команду " print users" Для пользователей Python 3 используйте команду " print(пользователи)" Первый пользователь, как правило, админ.

  6. выберите пользователя, которому вы хотите изменить пароль, например,

    "user = users[0]"

  7. установить пароль

    user.set_password('name_of_the_new_password_for_user_selected')

  8. сохранить новый пароль

    "user.save()"

запустить сервер и войти, используя имя пользователя и новый пароль.


Если вы забыли создать администратора пользователя сначала построить один с createsuperuser команда on manage.py затем сменить пароль.


вы можете попробовать это:

1.Изменение пароля суперпользователя без консоли

python manage.py changepassword <username>

2.Изменение пароля суперпользователя через консоль

enter image description here enter image description here


в случае, если вы не знаете имена пользователей, созданные здесь. Вы можете получить пользователей, как описано выше @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

однако в случае, если вы создали свою независимую модель пользователя. Простой случай, когда вы хотите использовать электронную почту в качестве имени пользователя вместо имени пользователя по умолчанию. В этом случае ваша модель пользователя живет где-то, например your_accounts_app.модели тогда вышеупомянутое решение не будет работать. В этом случае вы можете использовать метод 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

еще одна вещь, которую стоит отметить, - это установить статус как активный. По крайней мере, для меня это работает. Для более подробной информации я создал другой superuser как люди объяснили выше. Затем я иду в таблицу базы данных auth_user и найдите это имя пользователя, чтобы убедиться, что его is_staff флаг установлен до 1. Это, наконец, позволило мне войти в admin сайт.


python manage.py имя пользователя changepassword


создайте нового суперпользователя с помощью команды "python manage.py createsuperuser". Войдите как новый суперпользователь. Нажмите на ссылку "пользователи". Затем нажмите на пользователя, которого вы хотите удалить. нажмите "удалить пользователя" в конце страницы формы.

Примечание-вышеупомянутый процесс внесет изменения в журналы действий, выполняемые этим конкретным пользователем.