Как сбросить пароль администратора Django?
Я использую Django (версия 1.3) и забыл имя пользователя и пароль администратора. Как сбросить оба?
и можно ли сделать обычного пользователя администратором, а затем удалить статус администратора?
14 ответов
-
python manage.py createsuperuser
создаст еще один суперпользователь, вы сможете войти в admin и запомнить свое имя пользователя. - Да, почему бы и нет.
чтобы дать обычные права пользователя, откройте оболочку с 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()
и вы устанавливаете новый пароль (:
Это очень хороший вопрос.
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
- перейдите в корневой каталог i, e. где ты ...manage.py " файл находится с помощью консоли или другого приложения, такого как Git.
- получить оболочку Python с помощью команды "python manage.py shell".
- импортируйте модель пользователя, введя выполнить следующую команду - из Джанго.ВНО.автор.модели импорт пользователя"
- получить всех пользователей, введя следующую команду "пользователь = пользователь.объекты.all ()"
распечатать список пользователей Для пользователей Python 2 используйте команду " print users" Для пользователей Python 3 используйте команду " print(пользователи)" Первый пользователь, как правило, админ.
-
выберите пользователя, которому вы хотите изменить пароль, например,
"user = users[0]"
-
установить пароль
user.set_password('name_of_the_new_password_for_user_selected')
-
сохранить новый пароль
"user.save()"
запустить сервер и войти, используя имя пользователя и новый пароль.
Если вы забыли создать администратора пользователя сначала построить один с createsuperuser
команда on manage.py
затем сменить пароль.
вы можете попробовать это:
1.Изменение пароля суперпользователя без консоли
python manage.py changepassword <username>
2.Изменение пароля суперпользователя через консоль
в случае, если вы не знаете имена пользователей, созданные здесь. Вы можете получить пользователей, как описано выше @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 createsuperuser". Войдите как новый суперпользователь. Нажмите на ссылку "пользователи". Затем нажмите на пользователя, которого вы хотите удалить. нажмите "удалить пользователя" в конце страницы формы.
Примечание-вышеупомянутый процесс внесет изменения в журналы действий, выполняемые этим конкретным пользователем.