将django-user-accounts与costom PasswordChangeView一起使用-Rediect Error

时间:2019-08-05 15:26:06

标签: python django authentication

我正在建立一个django项目,我需要一个遵循我们用户政策的用户管理系统。需要在180天后强制用户更改密码。因此,我决定使用pinax / django-user-accounts。我有一个名为“帐户”的django应用,可自定义标准django身份验证行为-本质上是定义自定义模板。

密码过期后,django重定向到

/accounts/change-password/?next=account_password

,因此循环播放,并且我的Firefox中出现浏览器重定向错误。

我设置了django用户帐户:

ACCOUNT_PASSWORD_EXPIRY = 60*60*2  # seconds until pw expires
ACCOUNT_PASSWORD_USE_HISTORY = True
ACCOUNT_LOGIN_URL = 'accounts:login'
ACCOUNT_LOGOUT_REDIRECT_URL = 'accounts:logout'
ACCOUNT_PASSWORD_CHANGE_REDIRECT_URL = 'accounts:account_password'
SITE_ID = 1

我还尝试将ACCOUNT_PASSWORD_CHANGE_REDIRECT_URL硬编码为“ / accounts / change-password”。结果是一样的。

login_required-decorator已从django.contrib.auth.decorators更改为account.decorators。

我的帐户应用程序的urls.py是:

app_name = 'accounts'
urlpatterns = [
...
    path(
        'change-password/',
        MyPasswordChangeView.as_view(),
        name='account_password'
    ),
]

我创建了自己的密码更改视图,该视图继承自django.contrib.auth.views.PasswordChangeView:

class MyPasswordChangeView(PasswordChangeView):
    template_name = 'accounts/password_change.html'

    def get_success_url(self):
        return '/'

目标是如果密码过期,则在每个请求上显示更改密码/页面。它已经准备好尝试到达那里,但是最终进入了这个重定向循环。

0 个答案:

没有答案