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

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

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

Ответ 2

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

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

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

Ответ 3

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

python manage.py shell

то используйте script в оболочке

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()

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

Ответ 4

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

Ответ 5

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

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

Пример: -

python manage.py changepassword mickey

Ответ 6

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

Ответ 7

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

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

  1. Перейдите в корневой каталог i, e. где вы управляете файлом "py.py ", используя консоль или другое приложение, такое как Git.
  2. Получите оболочку Python с помощью команды "python manage.py shell".
  3. Импортируйте пользовательскую модель, введя следующую команду "from django.contrib.auth.models import User"
  4. Чтобы получить всех пользователей, введите следующую команду "users = User.objects.all()"
  5. Распечатайте список пользователей. Для пользователей Python 2 используйте команду "print users". Для пользователей Python 3 используйте команду "print (users)". Первым пользователем обычно является администратор.

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

    "user = users[0]"

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

    user.set_password('name_of_the_new_password_for_user_selected')

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

    "user.save()"

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

Ответ 8

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

Ответ 9

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

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

python manage.py changepassword <username>

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

enter image description here enter image description here

Ответ 10

Если вы забыли создать администратора, сначала создайте его с помощью команды createsuperuser на manage.py, затем измените пароль.

Ответ 11

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

Ответ 12

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

Ответ 13

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

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

Ответ 14

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

Ответ 15

Я предпочитаю второй метод, упомянутый @unlockme

>>> python manage.py shell
>>> from django.contrib.auth import get_user_model
>>> users = get_user_model().objects.all()
>>> print(users)
<QuerySet [<CustomUser: admin>, <CustomUser: user1>, <CustomUser: user2>]>
>>> user = users[0]
>>> user.set_password('put_your_new_password_here')
>>> user.save()
>>> exit()

Ответ 16

использование

python manage.py dumpdata

затем посмотрите в конце вы найдете имя пользователя

Ответ 17

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

python manage.py createsuperuser <username>

а для пароля есть команда CLI changepassword для django для изменения пароля пользователя

python manage.py changepassword <username>

ИЛИ ЖЕ

django-admin changepassword <username>

ИЛИ Запустите этот код в Django env

from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()

Ответ 18

Два способа сделать это:

Команда управления changepassword management command:

(env) $ python manage.py changepassword <username>

Или (который расширяет несколько ответов, но работает для любой расширенной модели пользователя) с помощью оболочки django-admin следующим образом:

(env) $ python manage.py shell

Это должно вызвать командную строку оболочки следующим образом:

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)
>>>

Тогда вам нужно следующее:

>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='[email protected]')
>>> user.is_staff = True
>>> user.save()
>>> exit()

Н.Б. Почему я ответил на этот вопрос таким ответом?

Потому что, как уже упоминалось, User = get_user_model() будет работать для ваших собственных пользовательских моделей User. Используя from django.contrib.auth.models import User, затем User.objects.get(username='username') может выдать следующую ошибку:

AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'

Ответ 19

Лучший способ - просто зайти в свой терминал и набрать

python manage.py createsuperuser

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