当我单击激活链接http://127.0.0.1:8000/core/auth/activate/aoisdoaisdoaisdoiaj/
时
我被带到一个激活失败的页面,上面显示-The activation key you provided is invalid
。
但是我在数据库中的帐户也被激活。
如果正在激活帐户,则意味着激活成功,那么django-registration为什么会重定向到失败的页面? 谢谢
答案 0 :(得分:0)
在django-registration / backends / activation / urls.py中有2个url会产生复杂性,这对于像我这样的django新秀来说很难解决: 按照以下所示的顺序将它们称为url1和url2。
"activate/complete/"
"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")