【问题标题】:Django allauth Redirect on Password Change SuccessDjango allauth 重定向密码更改成功
【发布时间】:2017-05-25 15:52:34
【问题描述】:

这个问题之前在这里提出过: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”,因此它肯定会进入该自定义视图。但它没有打印“Inside Success”。

感谢任何帮助!谢谢!

【问题讨论】:

  • 请注意,“Getting Here”是在加载模块并定义类时打印的,而不是在视图运行时打印的。
  • 您在正则表达式中缺少尾部斜杠 - r'^accounts/password/change/$' 会更好。你也错过了name='account_change_password'。不过我认为这不会解决问题。
  • 我做了你建议的更改,但结果相同。
  • 您解决了这个问题吗?我有完全相同的问题。

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


【解决方案1】:

success_url 是一个属性,而不是一个方法。所以你可以这样做:

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

或者,如果您需要动态 URL(例如,可以访问用户),您可以覆盖 get_success_url(),这是一个基本上只返回 success_url 属性的类方法。下面是一个例子。

class CustomPasswordChangeView(LoginRequiredMixin, PasswordChangeView):
    """
    Overriding Allauth view so we can redirect to profile home.
    """
    def get_success_url(self):
        """
        Return the URL to redirect to after processing a valid form.

        Using this instead of just defining the success_url attribute
        because our url has a dynamic element.
        """
        success_url = reverse('users:user-detail',
                              kwargs={'username': self.request.user.username})
        return success_url

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2015-01-08
    • 2016-05-21
    相关资源
    最近更新 更多