Установка PASSWORD_HASHERS в Django
У меня ошибка, когда я пытаюсь войти в систему любым пользователем
ошибка
Неизвестный алгоритм хэширования пароля "sahar". Вы указали это в Настройка PASSWORD_HASHERS?
Views.Py
def Login(request):
state = "Please log in below..."
username = password = ''
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect('/profile/')
else:
return render_to_response('auth.html',RequestContext(request))
else:
return render_to_response('auth.html',RequestContext(request))
else:
return render_to_response('auth.html',RequestContext(request)
Ответы
Ответ 1
Это означает, что есть обычный текст 'sahar'
, который хранится в качестве пароля учетной записи пользователя, который пытается войти в систему.
Обновите пароль пользователя в Admin или в manage.py shell
user = User.objects.get(username=username)
# use set_password method
user.set_password('sahar')
user.save()
# INSTEAD OF
user.password = 'sahar'
user.save()
Также проверьте свои другие представления, чтобы исправить действия user.password = '...'
и User.objects.create(password='...')
.
Ответ 2
Это лучший способ сохранить данные журнала
вы можете создать объект из формы
как
user = form.save(commit=False)
, затем очистите данные, чтобы удалить любые скрипты, введенные в поля формы.
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()