По умолчанию в поле пароля используется валидатор CRYPT () для хеширования пароля.Однако валидаторы применяются с отправкой форм (когда вызывается метод form.accepts ()), а не во время обычных операций .insert () и .update ().Перед вставкой нового пароля вы можете самостоятельно пропустить его через валидатор CRYPT поля auth_user.password:
d = {passfield: table_user[passfield].validate(new_pass)[0]}
s.update(**d)
Обновление: изменено requires[-1]
на validate
.
Обновление:Это не будет работать в текущей стабильной версии (1.99.3), но в следующем выпуске вы сможете выполнить:
d = {passfield: new_pass}
s.validate_and_update(**d)
Метод validate_and_update
уже существует, но ранееон только запускал валидаторы для проверки ошибок без преобразования отправленных значений (поэтому не работал с валидаторами, такими как CRYPT, которые преобразуют отправленные значения).Обновленная версия теперь также преобразует значения, поэтому должна работать с CRYPT.