Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django All_auth/rest_auth电子邮件地址验证使用HTTP GET请求_Django_Python 2.7_Django Allauth_Django Rest Auth - Fatal编程技术网

Django All_auth/rest_auth电子邮件地址验证使用HTTP GET请求

Django All_auth/rest_auth电子邮件地址验证使用HTTP GET请求,django,python-2.7,django-allauth,django-rest-auth,Django,Python 2.7,Django Allauth,Django Rest Auth,我使用Django all_auth和rest_auth作为移动应用程序的后端服务。 我集成了注册和登录API,所有的工作都很好 现在,我必须集成电子邮件地址验证逻辑 注册后(无社交),我必须发送一封带有链接的电子邮件,用户将使用该链接验证您的帐户 我在Django设置中添加了以下配置: ACCOUNT_EMAIL_VERIFICATION = 'mandatory' SOCIALACCOUNT_EMAIL_VERIFICATION = 'none' 这也很好用。注册新帐户后,我可以收到电子邮

我使用Django all_auth和rest_auth作为移动应用程序的后端服务。 我集成了注册和登录API,所有的工作都很好

现在,我必须集成电子邮件地址验证逻辑

注册后(无社交),我必须发送一封带有链接的电子邮件,用户将使用该链接验证您的帐户

我在Django设置中添加了以下配置:

ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
SOCIALACCOUNT_EMAIL_VERIFICATION = 'none'
这也很好用。注册新帐户后,我可以收到电子邮件。在收到的电子邮件中,我还有验证帐户的链接

我希望在用户单击链接时验证电子邮件

因此,我只想使用获取HTTP方法

正如文档中建议的那样,我还添加了此设置:

ACCOUNT_CONFIRM_EMAIL_ON_GET = True
我使用链接到所有授权视图的url

from allauth.account.views import ConfirmEmailView
url(r'^account-confirm-email/', ConfirmEmailView.as_view(), name='account_email_verification_sent'),
url(r'^account-confirm-email/(?P<key>[-:\w]+)/$', ConfirmEmailView.as_view(), name='account_confirm_email'),
此设置不足以使用电子邮件验证with GET方法


我必须为此覆盖自定义Django视图吗?

看起来您两次使用同一视图,而您应该使用另一个视图类。以下更改将修复此问题:

从allauth.account.views导入ConfirmEmailView,EmailVerificationSentView
# ...
网址(
r“^account confirm email/”,
EmailVerificationSentView.as_view(),这已更改
name='account\u email\u verification\u sent',
),
网址(
r'^帐户确认电子邮件/(?P[-:\w]+)/$,
ConfirmEmailView.as_view(),
name='account\u confirm\u email',
),
# ...
KeyError at /account-confirm-email/NzU:1hjl8A:z5Riy8Bjv_h0zJQtoYKuTkKvRLk/
'key'

/allauth/account/views.py in get
            self.object = self.get_object() ...
▶ Local vars
/allauth/account/views.py in get_object
        key = self.kwargs['key'] ...
▶ Local vars