Ответы:
python manage.py changepassword <user_name>
manage.py createsuperuser
создать второго суперпользователя, а затем просмотреть список пользователей, чтобы найти оригинальное. Затем войдите в систему как оригинальный и удалите нового суперпользователя.
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()
user.is_staff = True
Вы можете попробовать через консоль:
python manage.py shell
затем используйте следующий скрипт в оболочке
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
перечислит вас всех суперпользователей в системе. если вы узнаете свое имя пользователя из списка:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
и вы установили новый пароль (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, добавить его installed apps
и запустить ./manage.py shell_plus
. User
Класс будет доступен и вы можете password-change
.
Вы можете создать нового суперпользователя с помощью createsuperuser
команды.
Один из лучших способов восстановить имя пользователя и пароль - это просмотреть и обновить их. Модель пользователя предоставляет идеальный способ сделать это.
Распечатайте список пользователей. Для пользователей Python 2 используйте команду «print users». Для пользователей Python 3 используйте команду «print (users)». Первым пользователем обычно является администратор.
Выберите пользователя, которому вы хотите изменить свой пароль, например
"user = users[0]"
Установить пароль
user.set_password('name_of_the_new_password_for_user_selected')
Сохранить новый пароль
"user.save()"
Запустите сервер и войдите в систему, используя имя пользователя и обновленный пароль.
manage.py changepassword
том, что вы не ограничены тем, какие пароли вы можете или не можете использовать - больше не похоже на дерьмовое имя пользователя. (Это в моей среде разработчиков. Я не защищаю более слабые пароли. Вы всегда должны использовать надежные пароли в продукт.)
Возможно, вы также неправильно ответили на вопрос о настройке и у вас ноль сотрудников. В этом случае отправляйтесь в 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;
Два способа сделать это:
Команда changepassword
управления :
(env) $ python manage.py changepassword <username>
Или (который расширяет несколько ответов, но работает для любой расширенной модели User), используя оболочку 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='admin@hug.com')
>>> user.set_password('new password')
>>> user.save()
>>> exit()
NB. Почему я ответил на этот вопрос этим ответом?
Потому что, как уже упоминалось, User = get_user_model()
будет работать для ваших собственных пользовательских User
моделей. Использование from django.contrib.auth.models import User
then User.objects.get(username='username')
может вызвать следующую ошибку:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Если вы забыли создать пользователя с правами администратора, сначала создайте его с помощью createsuperuser
команды, а 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.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
если вы забыли своего администратора, то вам нужно создать нового пользователя с помощью
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()
Еще одна вещь, на которую стоит обратить внимание - это установить статус вашего пользователя is_staff
как активный. По крайней мере, это то, что заставляет меня работать. Для более подробной информации, я создал другой, superuser
как люди объяснили выше. Затем я перехожу к таблице базы данных auth_user
и ищу это имя пользователя, чтобы убедиться, что его is_staff
флаг установлен в 1
. Это, наконец, позволило мне войти на admin
сайт.
Создайте нового суперпользователя с помощью команды «python manage.py createuperuser». Войдите в систему как новый супер пользователь. Нажмите на ссылку «пользователи». Затем нажмите на пользователя, которого хотите удалить. нажмите на удалить пользователя в конце страницы формы.
Примечание. Приведенный выше процесс внесет изменения в журналы активности, выполненные этим конкретным пользователем.
python manage.py changepassword имя пользователя
использование
python manage.py dumpdata
затем посмотрите в конце вы найдете имя пользователя
Я думаю, что лучше в командной строке
python manage.py создает суперпользователя