Я реализую UserCreationForm
, и с этим я устанавливаю некоторые значения по умолчанию password1
и password2
для пользователя. После успешного создания он отправляет электронное письмо этому пользовательскому экземпляру, а после щелчка по электронной почте пользователь активирует и перенаправляет на set_user_password
просмотр. Вид размещен ниже. Он успешно создает пароль для этого пользователя, но пользователь не может войти с этим вновь созданным паролем. В чем может быть причина?
forms.py
class SetPasswordForm(forms.ModelForm):
password1 = forms.CharField(widget=forms.PasswordInput, validators=[validate_password])
password2 = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = get_user_model()
fields = ['password1', 'password2']
def clean_password2(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if password1:
if not password1 == password2:
raise forms.ValidationError("Sorry the two passwords didn't match")
views.py
def set_user_password(request, pk):
user = get_object_or_404(get_user_model(), pk=pk)
form = SetPasswordForm()
if request.method == 'POST':
form = SetPasswordForm(request.POST)
if form.is_valid():
password = form.cleaned_data.get('password2')
user.set_password(password)
user.save()
messages.success(request, 'Password created successfully.')
return redirect('login')
return render(request, 'user_invitation/set_password.html', {'user': user, 'form': form})
urls.py
path('user/<int:pk>/set/password/', views.set_user_password, name='set_user_password'),
С помощью исходный пароль пользователь может войти в систему, но после сброса пароля он не может войти как с (начального, так и с нового) пароля