Django 2 Allauth 电子邮件确认重定向到空页面
Django 2 Allauth email confirmation redirects to empty page
我正在尝试设置 allauth
,至少可以说这是一个挑战。
我的注册页面有效(尽管 username
字段拒绝出现在表单上)并且在提交时,将用户重定向到一个空白页面,并带有横幅 Check your email to confirm account
邮件说
To confirm this is correct, go to http://localhost:8000/users/verify-email/Ng:1h2xx7:z9x0t0wmvAhicak5twI_QtVWNYo
当我点击 link 时,页面是空的(虽然仍然是我的 base.html
的样式,但没有内容。)
我假设它应该指向登录页面并显示横幅 Account confirmed, you may now log in.
有人可以告诉我为什么会这样吗?
电子邮件确认后的页面是否有我应该知道的 views.py class?
urls.py
from django.contrib.auth import views as auth_views
from users import views as user_views
from allauth.account.views import confirm_email
urlpatterns = [
path('register', user_views.MySignupView.as_view(template_name='users/register.html'), name='register'),
path('login', user_views.MyLoginView.as_view(template_name='users/login.html'), name='login'),
path('verify-email/<str:key>',
confirm_email,
name='account_confirm_email'),
views.py
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = 'users/register.html'
class MyLoginView(LoginView):
template_name = 'users/login.html'
forms.py
class UserRegisterForm(forms.Form):
email = forms.EmailField()
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.UserRegisterForm'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS=7
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400 # 1 day in seconds
原来我使用的是 {% block body %}
而不是 {% block content %}
,所以这就是页面样式为空的原因。
我正在尝试设置 allauth
,至少可以说这是一个挑战。
我的注册页面有效(尽管 username
字段拒绝出现在表单上)并且在提交时,将用户重定向到一个空白页面,并带有横幅 Check your email to confirm account
邮件说
To confirm this is correct, go to http://localhost:8000/users/verify-email/Ng:1h2xx7:z9x0t0wmvAhicak5twI_QtVWNYo
当我点击 link 时,页面是空的(虽然仍然是我的 base.html
的样式,但没有内容。)
我假设它应该指向登录页面并显示横幅 Account confirmed, you may now log in.
有人可以告诉我为什么会这样吗?
电子邮件确认后的页面是否有我应该知道的 views.py class?
urls.py
from django.contrib.auth import views as auth_views
from users import views as user_views
from allauth.account.views import confirm_email
urlpatterns = [
path('register', user_views.MySignupView.as_view(template_name='users/register.html'), name='register'),
path('login', user_views.MyLoginView.as_view(template_name='users/login.html'), name='login'),
path('verify-email/<str:key>',
confirm_email,
name='account_confirm_email'),
views.py
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = 'users/register.html'
class MyLoginView(LoginView):
template_name = 'users/login.html'
forms.py
class UserRegisterForm(forms.Form):
email = forms.EmailField()
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.UserRegisterForm'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS=7
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400 # 1 day in seconds
原来我使用的是 {% block body %}
而不是 {% block content %}
,所以这就是页面样式为空的原因。