目前我遇到一个奇怪的问题,我似乎无法解决。在
我有一个用于注册用户的表单。我在django1.7.4项目中有一个自定义用户模型。一切正常,但最近,如果已经存在具有相同电子邮件地址的用户,则该网站会崩溃。在
以下是线索:
Environment:
Request Method: POST
Request URL: http://mysite.dbz.dev/purchase/step1/Business
Django Version: 1.7.4
Python Version: 2.7.9
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_summernote',
'usercp',
'clickatell',
'downloadcenter',
'purchaseorder',
'paypalrestsdk',
'import_export',
'debug_toolbar')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'mysite.middleware.AutoLogout',
'mysite.middleware.LocationChecker')
Traceback:
File "/home/bs/envs/main-page/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/vhosts/main-page/purchaseorder/views.py" in step1
194. if form.is_valid():
File "/home/bs/envs/main-page/lib/python2.7/site-packages/django/forms/forms.py" in is_valid
162. return self.is_bound and not bool(self.errors)
File "/home/bs/envs/main-page/lib/python2.7/site-packages/django/forms/forms.py" in errors
154. self.full_clean()
File "/home/bs/envs/main-page/lib/python2.7/site-packages/django/forms/forms.py" in full_clean
353. self._clean_fields()
File "/home/bs/envs/main-page/lib/python2.7/site-packages/django/forms/forms.py" in _clean_fields
371. value = getattr(self, 'clean_%s' % name)()
File "/var/www/vhosts/main-page/usercp/forms.py" in clean_email2
343. email = self.cleaned_data["email"]
Exception Type: KeyError at /purchase/step1/Business
Exception Value: 'email'
以下是我的清洁方法:
^{pr2}$有人知道为什么它会失败,当有一个现有的用户?在我看来,清理后的数据会被一个对象取代。但这对我来说没有意义。在
在表单中,如果要根据多个字段进行清理,则必须执行
clean
方法,而不是clean_field
方法:编辑
用Michael B注释编辑
相关问题 更多 >
编程相关推荐