我将django allauth用于我的django项目,以获取所有与身份验证相关的功能,
所以现在我想实现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关于通知该you have changed password successfully的信息。

那么,成功更改密码并重定向到同一页面后,如何显示和显示错误消息?

最佳答案

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所述在模板内使用您的消息。

关于python - django allauth更改密码 View 返回响应后如何添加成功消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19892366/

10-12 21:37