如何在django allauth更改密码视图后添加成功消息已返回响应

时间:2013-11-10 16:54:29

标签: python django password-recovery django-allauth

我在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}}。

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

2 个答案:

答案 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 %}

Link to the password_changed.txt file on github