NoReverseMatch в /force-password-change/ при смене пароля
Я использую систему пользователей django,
При попытке пользователя изменить пароль возникает ошибка, похожая на неправильную маршрутизацию url.
NoReverseMatch at /force-password-change/
Reverse for '' not found. '' is not a valid view function or pattern name.
Request Method: POST
Request URL: http://localhost.example.jp:8010/force-password-change/
Django Version: 3.2.7
Exception Type: NoReverseMatch
Exception Value:
Reverse for '' not found. '' is not a valid view function or pattern name.
Exception Location: /Users/whitebear/.local/share/virtualenvs/example-admin-mg9y4sUV/lib/python3.9/site-packages/django/urls/resolvers.py, line 694, in _reverse_with_prefix
Python Executable: /Users/whitebear/.local/share/virtualenvs/example-admin-mg9y4sUV/bin/python
Python Version: 3.9.10
Python Path:
['/Users/whitebear/MyCode/httproot/suntory_cdk/example-admin',
'/Users/whitebear/MyCode/httproot/suntory_cdk/example-admin/example-shared-models',
'/Users/whitebear/MyCode/httproot/suntory_cdk/example-admin/$PYTHONPATH',
'/Users/whitebear/.pyenv/versions/3.9.10/lib/python39.zip',
'/Users/whitebear/.pyenv/versions/3.9.10/lib/python3.9',
'/Users/whitebear/.pyenv/versions/3.9.10/lib/python3.9/lib-dynload',
'/Users/whitebear/.local/share/virtualenvs/example-admin-mg9y4sUV/lib/python3.9/site-packages']
Эта ошибка происходит примерно здесь,
в users/views.py
class PasswordChangeView(LoginRequiredMixin, FormView):
template_name = "users/password_change.html"
form_class = PasswordChangeForm
success_url = reverse_lazy("")
def get(self, request, *args, **kwargs):
form = self.form_class()
user = get_object_or_404(User, username=self.request.user.username)
return render(request, self.template_name,
{"form": form, "email": user.email})
def post(self, request, *args, **kwargs):
print("password is posted")
form = self.form_class(request.POST)
if form.is_valid():
data = form.cleaned_data
user = get_object_or_404(User, username=request.user.username)
user.set_password(data["new_password1"])
user.is_require_pwd_change = False
user.save()
return super(PasswordChangeView, self).form_valid(form)
return super(PasswordChangeView, self).form_invalid(form)