邮件确认错误rest-auth



我使用一个标准的表单来确认电子邮件:从allauth.account.views导入confirm_email作为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

我正确地收到了一封电子邮件,但是当你试图链接:

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()'
我想我找到你的问题了。 这个url:

/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的源代码,你会看到这段代码:

# 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

你确实试图覆盖视图,但是你的匹配模式是错误的,:字符导致它失败,所以让我们尝试像

这样的东西
url(r'^rest-auth/registration/account-confirm-email/(?P<key>[-:w]+)/$', allauthemailconfirmation, name="account_confirm_email"), 

的相关部分: (? p [w -: ] +)/$

最新更新