Я пытаюсь настроить 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
Когда я нажимаю на ссылку, страница пуста (хотя все еще разрабатывается моим base.html
, контента нет.)
Я предполагаю, что это должно быть перенаправление на страницу входа и показ баннера Account confirmed, you may now log in.
Может кто-нибудь, пожалуйста, укажите мне, почему это происходит?
Есть ли класс views.py для страницы после подтверждения по электронной почте, о котором я должен знать?
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