bla*_*aze 6 django django-allauth
我收到以下错误:
django.core.exceptions.ImproperlyConfigured:模块"accounts.forms"没有定义"SignupForm"类
settings.py
(...)
ACCOUNT_SIGNUP_FORM_CLASS = 'accounts.forms.SignupForm'
(...)
Run Code Online (Sandbox Code Playgroud)
账户/ forms.py
from allauth.account.forms import BaseSignupForm
class SignupForm(BaseSignupForm):
def __init__(self, *args, **kwargs):
self.sociallogin = kwargs.pop('sociallogin')
user = self.sociallogin.account.user
first_name = forms.CharField(label=_('First name'),
max_length=30,
min_length=2,
widget=forms.TextInput(attrs={
'placeholder':_('First name')}))
last_name = forms.CharField(label=_('Last name'),
max_length=30,
min_length=2,
widget=forms.TextInput(attrs={
'placeholder':_('Last name')}))
second_last_name = forms.CharField(label=_('Second last name'),
max_length=30,
empty='',
widget=forms.TextInput(attrs={
'placeholder':_('Second last name')}))
# TODO: Should become more generic, not listing
# a few fixed properties.
initial = {'email': user_email(user) or '',
'username': user_username(user) or '',
'first_name': user_field(user, 'first_name') or '',
'last_name': user_field(user, 'last_name') or ''}
kwargs.update({
'initial': initial,
'email_required': kwargs.get('email_required',
app_settings.EMAIL_REQUIRED)})
super(SignupForm, self).__init__(*args, **kwargs)
def save(self, request):
adapter = get_adapter()
user = adapter.save_user(request, self.sociallogin, form=self)
# TODO: Add request?
super(SignupForm, self).save(user)
return user
def raise_duplicate_email_error(self):
raise forms.ValidationError(
_("An account already exists with this e-mail address."
" Please sign in to that account first, then connect"
" your %s account.")
% self.sociallogin.account.get_provider().name)
Run Code Online (Sandbox Code Playgroud)
Aam*_*nan 18
先生,您是循环进口的受害者.allauth尝试从accounts.forms您从allauth导入的同一文件中导入您的自定义注册表单类from allauth.account.forms import BaseSignupForm.你不需要扩展你SignupForm的BaseSignupForm.只需创建一个简单的表单,allauth就会自动为您扩展.
只需继承forms.Form并添加注册功能即可。
class CustomSignupForm(forms.Form):
def signup(self, request, user):
pass
ACCOUNT_SIGNUP_FORM_CLASS = 'app.forms.CustomSignupForm'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |