Метод set_password

Метод set_password применяется к экземпляру модели User и устанавливает новый пароль для пользователя, автоматически преобразуя его в хешированный вид с использованием алгоритмов хеширования паролей Django. Метод принимает один обязательный аргумент - новый пароль в виде строки, и не возвращает никакого значения. Важно помнить, что после вызова метода необходимо сохранить объект с помощью save для применения изменений в базе данных.

Синтаксис

pythonuser.set_password(raw_password)

Пример

Давайте создадим нового пользователя и установим ему пароль:

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

Результат выполнения кода:

python"User john password set successfully"

Пример

Давайте изменим пароль у существующего пользователя и проверим, что хеш изменился:

pythonfrom 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}")

Результат выполнения кода:

python"Password hash changed: True"

Пример

Давайте создадим суперпользователя и установим ему пароль, а затем проверим его с помощью метода check_password:

pythonfrom 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}")

Результат выполнения кода:

python"Is password valid: True"
"Is wrong password valid: False"

Смотрите также

  • метод check_password,
    который проверяет соответствие пароля хешу пользователя
  • метод create_user,
    который создаёт нового пользователя с указанным паролем
  • функция authenticate,
    которая аутентифицирует пользователя по логину и паролю
  • функция update_session_auth_hash,
    которая обновляет сессию после смены пароля