Отсутствие ключа электронной почты в полях для UserCreationForm в Django
У меня проблема с UserCreationForm
в Django, а именно, я получаю ошибку, связанную с тем, что поле email, которое является моим USERNAME_FIELD, не найдено в self.fields
Я подклассифицирую UserCreationForm
как таковой
class UserCreationForm(UserCreationForm, CheckUserEmailExtension):
"""
A UserCreationForm with optional password inputs.
"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["password1"].required = False
self.fields["password2"].required = False
# If one field gets autocompleted but not the other, our 'neither
# password or both password' validation will be triggered.
self.fields["password1"].widget.attrs["autocomplete"] = "off"
self.fields["password2"].widget.attrs["autocomplete"] = "off"
class Meta:
model = User
fields = (
'first_name',
'last_name',
'email',
'is_pi',
'password1',
'password2',
)
И ошибка возникает в
authtools/forms.py, line 95, in __init__
self.fields[User.USERNAME_FIELD].validators.append(validate_uniqueness_of_username_field)
из-за отсутствия email
в self.fields
фактически, если я проверю локальные переменные, то увижу только is_pi;password1;password2
в self.fields
Local Vars
__class__ <class 'authtools.forms.UserCreationForm'>
args ()
kwargs {'initial': {'_changelist_filters': 'q=patt'}}
self <UserForm bound=False, valid=Unknown, fields=(is_pi;password1;password2)>
validate_uniqueness_of_username_field <function UserCreationForm.__init__.<locals>.validate_uniqueness_of_username_field at 0x7f255fb58540>
При этом, когда вызывается ModelForm, email
находится там
form = ModelForm(initial=initial)
Local Vars
ModelForm <class 'django.forms.widgets.UserForm'>
add True
extra_context {'auto_populated_fields': (), 'username_help_text': ''}
fieldsets ((None,
{'description': "Enter the new user's name and email address and click Save. "
'The user will be emailed a link allowing him/her to login '
'to the site and set his/her password.',
'fields': ('first_name', 'last_name', 'email', 'is_pi')}),
('Password',
{'classes': ('collapse', 'collapse-closed'),
'description': "Optionally, you may set the user's password here.",
'fields': ('password1', 'password2')}))
form_url ''
initial {}
obj None
object_id None
request <WSGIRequest: GET '/admin/common/user/add/>
self <UserAdmin: model=User site=AdminSite(name='admin')>
to_field None
Что еще больше усложняет ситуацию, эта ошибка исчезает вскоре после перезапуска приложения и появляется через некоторое время после этого. Я также не вижу ее в приложении dev, то есть там, где включен DEBUG.
Есть идеи?
Заранее спасибо.