PasswordChangeView 在 Django 中不显示成功消息

PasswordChangeView Doesn't Show Success Message in Django

我在这个 PasswordChangeView 上尝试了一些不同的东西,但即使使用 SuccessMessageMixin 仍然无法显示正确的成功消息

消息有效,但在单击提交按钮后无效,它会在您再次返回密码更改后显示消息 url,并显示空白的密码更改表单和成功消息。

我想要实现的是,当 he/she 在提交按钮后单击时,我想向用户显示消息。 可能答案很简单,但我是新手,现在不知道如何处理表单中的错误和成功消息。

一切正常完美更改密码并在休眠 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 %}

到帖子页面并显示消息。