Django allauth重定向密码更改成功

时间:2017-05-25 15:52:34

标签: python django redirect django-allauth change-password

此问题已在此处提出:https://github.com/pennersr/django-allauth/issues/468

它关闭了几年,这可以解释为什么它不适合我。 密码成功更改后,我只是尝试重定向到更改密码页以外的其他页面。

这是我的代码,它不会使页面成功重定向。

#ursl.py
url(r'accounts/password/change', views.custom_password_change),
url(r'^accounts/', include('allauth.urls'))
...

#views.py
from allauth.account.views import PasswordChangeView
from django.contrib.auth.decorators import login_required

class CustomPasswordChangeView(PasswordChangeView):
    print("Getting Here")
    @property
    def success_url(self):
        print('Inside Success')
        return '/unknown/'

custom_password_change = login_required(CustomPasswordChangeView.as_view())

提交密码更改后,我的终端正在打印" Getting Here"所以它肯定会进入自定义视图。但它不打印"内部成功"。

任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:0)

success_url是属性,而不是方法。因此,您可以执行以下操作:

class CustomPasswordChangeView(PasswordChangeView):
    success_url = '/unknown/'

或者,如果您需要动态URL(例如,具有访问User的权限),则可以覆盖get_success_url(),这是一个基本上只返回{​​{1}}属性的类方法。下面是一个例子。

success_url