Метод set_password
Метод set_password применяется к экземпляру модели User
и устанавливает новый пароль для пользователя, автоматически
преобразуя его в хешированный вид с использованием
алгоритмов хеширования паролей Django. Метод принимает
один обязательный аргумент - новый пароль в виде строки,
и не возвращает никакого значения. Важно помнить, что
после вызова метода необходимо сохранить объект
с помощью save для применения изменений
в базе данных.
Синтаксис
user.set_password(raw_password)
Пример
Давайте создадим нового пользователя и установим ему пароль:
from django.contrib.auth.models import User
# Create new user
user = User.objects.create_user(username='john')
user.set_password('secret_password_123')
user.save()
print(f"User {user.username} password set successfully")
Результат выполнения кода:
"User john password set successfully"
Пример
Давайте изменим пароль у существующего пользователя и проверим, что хеш изменился:
from django.contrib.auth.models import User
# Get existing user
user = User.objects.get(username='john')
# Store old password hash
old_hash = user.password
# Set new password
user.set_password('new_secure_password_456')
user.save()
# Check if hash changed
print(f"Password hash changed: {old_hash != user.password}")
Результат выполнения кода:
"Password hash changed: True"
Пример
Давайте создадим суперпользователя и установим ему пароль,
а затем проверим его с помощью метода check_password:
from django.contrib.auth.models import User
# Create superuser
user = User.objects.create_superuser(
username='admin',
email='admin@example.com'
)
user.set_password('admin_password_789')
user.save()
# Check password
is_valid = user.check_password('admin_password_789')
print(f"Is password valid: {is_valid}")
# Try wrong password
is_valid_wrong = user.check_password('wrong_password')
print(f"Is wrong password valid: {is_valid_wrong}")
Результат выполнения кода:
"Is password valid: True"
"Is wrong password valid: False"
Смотрите также
-
метод
check_password,
который проверяет соответствие пароля хешу пользователя -
метод
create_user,
который создаёт нового пользователя с указанным паролем -
функция
authenticate,
которая аутентифицирует пользователя по логину и паролю -
функция
update_session_auth_hash,
которая обновляет сессию после смены пароля