【问题标题】:django-registration invalid activation key error but user account gets activateddjango-registration 无效激活密钥错误,但用户帐户被激活
【发布时间】:2020-08-08 16:21:55
【问题描述】:

当我点击激活链接http://127.0.0.1:8000/core/auth/activate/aoisdoaisdoaisdoiaj/ 我被带到一个activation_failed 页面,上面写着-The activation key you provided is invalid。 但是我在数据库中的帐户也被激活了。

如果帐户正在激活,则意味着激活成功,那么 django-registration 为什么会重定向到失败的页面? 谢谢

【问题讨论】:

    标签: django django-registration


    【解决方案1】:

    您被重定向到activation/complete/,并且您的自定义激活 URL 正在捕获此 URL。要恢复内置行为,请在您的自定义激活 URL 上方添加一个 URL 模式,如下所示:

    path("activate/complete/", 
             TemplateView.as_view(template_name="django_registration/activation_complete.html"),
             name="django_registration_activation_complete")
    

    【讨论】:

      【解决方案2】:

      在 django-registration/backends/activation/urls.py 中有 2 个 url 会产生复杂的情况,这对于像我这样的 django 新手来说很难弄清楚: 让我们按照如下所示的顺序将它们称为 url1 和 url2。

      1. "activate/complete/"
      2. "activate/<str:activation_key>/"

      它们在原始 urls.py 中被战略性地排序。但是由于我覆盖了 ActivationView 类,所以我不得不覆盖 url2 "activate/<str:activation_key>/"。这改变了原来的顺序,django 开始在 url1 之前寻找 url2。如您所见,任何格式为/activate/xyz/ 的url 都可以作为url2。因此 /activate/complete/ 在 url2 中也称为视图。

      解决方案:将 url1 的名称更改为 activation/complete/ 之类的名称,一切正常

      那个放

      【讨论】:

        猜你喜欢
        • 2013-01-12
        • 2011-06-22
        • 1970-01-01
        • 2016-08-01
        • 2016-08-31
        • 1970-01-01
        • 2016-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多