django注册无效的激活密钥错误,但用户帐户被激活

时间:2020-04-25 00:26:20

标签: django django-registration

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

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

2 个答案:

答案 0 :(得分:0)

在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中也称为view。

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

那个

答案 1 :(得分:0)

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

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