我在django项目中使用django allauth来获取所有与身份验证相关的功能,
所以现在我想实现password change
功能,所以只需将django allauth模板复制到我的templates/allauth/account/password_change.html
并使用我的自定义设计进行自定义,并具有如下形式
<form accept-charset="UTF-8" class="" action="{% url 'account_change_password' %}" method="post">
{% csrf_token %}
<div class="alert alert-success password_changed">
You have Successfully changed your Password!
</div>
{{form.as_p}}
<div class="span12 pagination-centered marg_lftnone">
<input id="save_new_password" name="action" type="submit" class="btn btn-large big_btn marg_tp38 marg_btm38" value="Save Password">
</div>
</form>
因此,使用上面的模板,密码更改功能一直正常工作并重定向到当前页面,但我想要的是当重定向到当前页面时,我想显示一个message div
,如上所述通知{{1} 1}}。
那么在密码成功更改并重定向到同一页面后如何显示和显示错误消息?
答案 0 :(得分:1)
Allauth发出password_changed
信号,因此您需要连接接收器。在models.py中添加以下内容:
from allauth.account.signals import password_changed
from django.dispatch import receiver
from django.contrib import messages
@receiver(password_changed)
def password_change_callback(sender, request, user, **kwargs):
messages.success(request, 'You have Successfully changed your Password!.')
然后在模板中使用您的消息,如文档here。
答案 1 :(得分:1)
在django-allauth中,消息存储为django-allauth/allauth/templates/account/messages/
中的txt文件。
您可以将password_changed.txt
文件复制到templates/account/messages/
并自定义以下代码:
{% load i18n %}
{% blocktrans %}Password successfully changed.{% endblocktrans %}