Ошибка Django cannot change password не вернула объект HttpResponse. Вместо этого он вернул None

Я создаю форму для изменения пароля следующим образом.

forms.py

class PasswordChangeForm(forms.Form):

    password = forms.CharField(max_length=32,required=True,widget=forms.PasswordInput)
    repassword = forms.CharField(max_length=32,required=True,widget=forms.PasswordInput,label="Password Confirmation")

    def clean(self):
        cleaned_data = super(PasswordChangeForm, self).clean()
        password = cleaned_data.get("password")
        repassword = cleaned_data.get("repassword")

        if password != repassword:
            raise forms.ValidationError(
                "Password and Confirm Password does not match"
            )

В файле views.py я сохраняю новый пароль следующим образом views.py

def changePassword(request):

    username = None
    if request.user.is_authenticated:

        if request.method == 'POST':

            form = PasswordChangeForm(request.POST)

            if form.is_valid():
                username = request.user.username
                user = User.objects.get(username=username)
                password = form.cleaned_data.get('password')

                user.set_password(password)
                user.save()
                messages.success(request, "Your password has been changed successfuly.!")
            
                return redirect('/changePassword')

            else:
                print(form.errors.as_data())

        else:
            form=PasswordChangeForm()
            
        return render(request,'changepassword_form.html',{'form':form})

Выдает ошибку следующего вида.

ValueError at /changePassword
The view device.views.changePassword didn't return an HttpResponse object. It returned None instead.

После появления ошибки пароль был изменен. Происходит автоматический выход из системы, и я могу войти в систему с новым паролем, но он не перенаправляет на форму. Как исправить эту ошибку?

Возможно, что после смены пароля пользователь больше не аутентифицирован, добавьте @login_required вместо проверки аутентификации пользователя.

from django.contrib.auth.decorators import login_required

@login_required
def changePassword(request):
    if request.method == 'POST':
        ...
Вернуться на верх