На самом деле вам не нужно переопределять представление учетной записи, чтобы поместить электронную почту в представление. Из this implementation
я вижу, что, если вы установите в сеансе электронное письмо с ключом account_verified_email
, оно должно появиться в форме.
Тем не менее, если вы переопределите accounts.SignupView
, выполните следующие действия:
Во-первых, вам нужно ввести CustomFormSignupView
в URL:
urlpatterns =+ [
url(r'^accounts/', include('allauth.urls')),
<b>url(r'^accounts/signup/$', CustomFormSignupView.as_view(), name="account_signup")</b>
]
И обновить форму:
from allauth.account.forms import SignupForm
class CustomSignupForm(SignupForm):
def __init__(self, *args, **kwargs):
<b>self.request = kwargs.pop('request', None)</b>
super().__init__(*args, **kwargs)
if 'email' in self.request.session:
self.fields['email'].value = self.request.session['email']
self.fields['email'].disabled = True
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
return user