PasswordChangeView не показывает сообщение об успехе в Django
Я попробовал несколько различных вещей на этом PasswordChangeView, но все еще не смог показать правильное сообщение об успехе даже с SuccessMessageMixin
Сообщения работают, но не после нажатия на кнопку отправки появляется сообщение после того, как вы снова вернетесь к url смены пароля и покажет пустую форму смены пароля с сообщением об успехе.
Я хочу добиться того, чтобы показывать сообщение пользователю, когда он/она нажимает на кнопку submit. Возможно, ответ довольно прост, но я новичок и пока не знаю, как обрабатывать сообщения об ошибках и успехах в формах.
Все работает идеально Меняет пароль и перенаправляет после 1 секунды сна.
Спасибо за помощь.
class PasswordChange(SuccessMessageMixin,PasswordChangeView):
model = User
form_class = PasswordChangeForm
template_name = "passwordchange.html"
success_message = "Password Changed Successfully You will be redirected in 1 second"
success_url = reverse_lazy("password_change_done")
class PasswordDone(PasswordChangeDoneView):
template_name = "password_change_done.html"
def dispatch(self, request, *args, **kwargs):
if self.request.user.is_authenticated:
sleep(1)
return redirect("posts")
return super(PasswordDone,self).dispatch(request, *args, **kwargs)
КОДЫ ФОРМ
<body>
{{ request.user }}
<form method="POST">
{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="submit">
</form>
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{
message }}</li>
{% endfor %}
</ul>
{% endif %}
</body>
Спасибо всем, все решено
Я переехал
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message
}}</li>
{% endfor %}
</ul>
{% endif %}
Перейдите на страницу Posts и отобразится сообщение.