【发布时间】:2021-10-25 10:42:30
【问题描述】:
我在 PasswordChangeView 上尝试了一些不同的方法,但即使使用 SuccessMessageMixin 仍然无法显示正确的成功消息
消息有效,但在单击提交按钮后无效
我想要实现的是当他/她在提交按钮后单击时向用户显示消息。 可能答案很简单,但我是新手,暂时不知道如何处理表单中的错误和成功消息。
一切正常完美更改密码并在睡眠 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>
【问题讨论】:
-
在“帖子”页面上显示消息是一个选项吗?
-
如果您的意思是在帖子页面上显示成功消息,那也很好。如果您对此有解决方案
-
将此添加到您的基本模板中,以便您添加的任何消息都显示在所有页面上docs.djangoproject.com/en/3.2/ref/contrib/messages/…
-
我已经添加了它们忘记放入stackoverflow
-
将消息部分添加到“帖子”模板中,或者理想情况下添加到所有模板都扩展的基本模板中
标签: django django-views django-forms django-class-based-views