电子邮件确认错误rest-auth [英] Email confirm error rest-auth
问题描述
我使用标准格式的确认电子邮件:allauth.account.views中的
以allauthemail确认的形式导入confirm_email
I use a standard form for the confirmation email: from allauth.account.views import confirm_email as allauthemailconfirmation
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^rest-auth/', include('rest_auth.urls')),
url(r'^accounts/', include('allauth.urls')),
url(r'^rest-auth/registration/account-confirm-email/(?P<key>\w+)/$', allauthemailconfirmation, name="account_confirm_email"),
url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
]
设置:
LOGIN_REDIRECT_URL='/'
ACCOUNT_EMAIL_VERIFICATION='mandatory'
ACCOUNT_CONFIRM_EMAIL_ON_GET=False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = True
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = False
我正确地收到了一封电子邮件,但是当您尝试链接时:
I correctly get an e-mail, but when you try to link:
ImproperlyConfigured at /rest-auth/registration/account-confirm-email/MTU:1bn1OD:dQ_mCYi6Zpr8h2aKS9J9BvNdDjA/
TemplateResponseMixin requires either a definition of 'template_name' or an implementation of 'get_template_names()'
推荐答案
我想我发现了您的问题。
I think I found your problem.
此网址:
/rest-auth/registration/account-confirm-email/MTU:1bn1OD:dQ_mCYi6Zpr8h2aKS9J9BvNdDjA/
与以下模式不匹配:
url(r'^rest-auth/registration/account-confirm-email/(?P<key>\w+)/$', allauthemailconfirmation, name="account_confirm_email"),
但通过以下方式:
url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
,如果您查看 rest_auth.registration.urls
的源代码,您将看到以下代码:
and if you look at the source code of rest_auth.registration.urls
, you will see this code:
# This url is used by django-allauth and empty TemplateView is
# defined just to allow reverse() call inside app, for example when email
# with verification link is being sent, then it's required to render email
# content.
# account_confirm_email - You should override this view to handle it in
# your API client somehow and then, send post to /verify-email/ endpoint
# with proper key.
# If you don't want to use API on that step, then just use ConfirmEmailView
# view from:
# django-allauth https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py#L190
url(r'^account-confirm-email/(?P<key>[-:\w]+)/$', TemplateView.as_view(), name='account_confirm_email'),
因此,您应该覆盖此视图,或者您将得到错误,如此处所述: https:// github .com / Tivix / django-rest-auth / issues / 20
So, you should overwrite this view, or you will get the error you've got, as explained here: https://github.com/Tivix/django-rest-auth/issues/20
您确实试图覆盖视图,但是您的匹配模式是错误的, :char导致失败,所以让我们尝试
You have indeed tried to overwrite the view, but your matching pattern is wrong, the : char causes it to fail, so let's try something like
url(r'^rest-auth/registration/account-confirm-email/(?P<key>[-:\w]+)/$', allauthemailconfirmation, name="account_confirm_email"),
相关部分为:(?P [-:\w] +)/ $
这篇关于电子邮件确认错误rest-auth的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!