Я создал страницу профиля с помощью django, чтобы пользователи могли изменить свою информацию, которую я дал в форме регистрации. (например, имя, адрес электронной почты, пароль)
У меня две проблемы с полем пароля:
1 - когда пользователь вводит пароль в текстовое поле, он отправляется в необработанном формате, и мне нужен формат таблицы пользователя django
<algorithm>$<iterations>$<salt>$<hash>
мой взгляд на страницу профиля:
def user_profile(request):
current_user = request.user
form = UserProfileForm(request.POST or None, instance=current_user)
if request.POST:
if form.is_valid():
# pwd = form.cleaned_data['password']
# form_obj = form.save(commit=False)
# form_obj.password = make_password(pwd)
form.save()
message = "saved successfully"
return render(request, 'Profile.html', {'form':form, 'message':message}, context_instance=RequestContext(request))
return render_to_response('Profile.html', {
'form': form,
}, context_instance=RequestContext(request))
как вы можете видеть в комментариях, я использовал функцию make_password для хеширования пароля, и она отлично работает, НО после отправки страницы пользователь не может перейти на другие страницы и ему нужно повторно войти в систему ... почему ?!
2 - когда страница профиля показывается пользователю, она заполняется текущей информацией в базе данных, а пароль также находится в указанном выше формате (хэш), и если пользователь отправляет форму без каких-либо изменений в поле пароля, пароль изменяется (он отправляет хэш один и хэш его снова!)
как я могу решить эту проблему и создать простую рабочую страницу профиля в django? (Мне очень не нравится его собственная панель администратора! Она выглядит некрасиво!)